EMR에서 하이브 Metastore를 사용 중입니다. HiveSQL을 통해 수동으로 테이블을 쿼리 할 수 있습니다.
하지만 스파크 작업에 동일한 테이블을 사용하는 경우, 그것은 입력 경로가 존재하지 않습니다 말한다 : S3 : org.apache.hadoop.mapred.InvalidInputException :에 의한 //사용 가능한 지정된 파티션 경로가 없으면 SPARK SQL이 실패 함
입력 경로를 내가 S3에 내 위의 파티션 경로를 삭제 한
... // : .. //하지만 여전히 테이블 수준에서 파티션을 삭제하지 않고 내 하이브에서 작동 S3 : 가 존재하지 않습니다. 하지만 여기 어쨌든 pyspark에
를 작동하지 않는 것은 내 전체 코드
내가 하이브 카탈로그 테이블을 사용하기 위해 아래에있는 내 작업을 제출from pyspark import SparkContext, HiveContext
from pyspark import SQLContext
from pyspark.sql import SparkSession
sc = SparkContext(appName = "test")
sqlContext = SQLContext(sparkContext=sc)
sqlContext.sql("select count(*) from logan_test.salary_csv").show()
print("done..")
입니다.
spark-submit test.py --files /usr/lib/hive/conf/hive-site.xml
과 시도 'S3A : //'대신 'S3 : //' –
S3 경로에 : 다른 테이블과 잘 작동과 같은 테이블이 하이브에서 잘 작동 //! – logan
1) Hive와 대화하고 싶다면 SQLContext 사용을 중지하십시오. 2) SparkSession에 명시 적으로 'enableHiveSupport()'가 필요합니다. –