2

spark-shell에서 spark 객체에 대한 하이브 지원을 활성화하려하지만 작동하지 않습니다. 나는 Hortonworks HDP를 사용하고 있습니다.spark-shell (spark 2.1.1)에서 spark에 하이브 지원을 활성화하는 방법

scala> val spark3 = SparkSession.builder.enableHiveSupport.getOrCreate 
17/10/24 21:30:28 WARN SparkSession$Builder: Using an existing SparkSession; some configuration may not take effect. 
spark3: org.apache.spark.sql.SparkSession = [email protected] 

scala> spark3.catalog 
res3: org.apache.spark.sql.catalog.Catalog = [email protected] 
+0

음 ... 작동합니다. 당신은'spark.sql()'을 시도 했습니까? –

+0

코드에 대해 죄송 합니다만 spark3.catalog는 spark.catalog와 동일한 것을 보여줍니다. – user1888243

+0

사실, spark.cataglog는 org.apache.spark.sql.internal.CatalogImpl 인 카탈로그의 유형을 보여줍니다. enableHiveSupport()가 효과적이면 org.apache.spark.sql.hive.HiveSessionCatalog가 표시되어야합니다. – user1888243

답변

1

이 HDP에서 spark-shell 이미 하이브를 지원하는 유효한 SparkSession를 만듭니다 내가 하이브 지원을 활성화하려고 할 때 다음은 내가 무엇을 얻을 수 있습니다.

당신은 당신이, 당신이 대신 spark3spark을 사용하고 또한

spark.sql("show tables").show() 

시도 할 수 있습니다 getOrCreate는 기존 세션

을 사용한다는 경고를 가지고, 그래서 그것은 보여 무슨 일이 있었는지 spark.catalog 분명하지 않다 당신이 아닌 다른 객체의 toString 정보

+0

SparkSession이 내부적으로 버전을 구현하기 때문에 spark.sql()이 작동한다고 생각합니다. 하이브의; 그래서 나는 그것이 spark.sql(), spark.catalog 및 그 작업과 같은 것들이라고 생각합니다. –

+0

"SparkSession은 내부적으로 Hive 버전을 구현합니다 ..."아닙니다. Spark Thrift Server는 Hive와 호환됩니다. Spark에서 사용하는 기본 메타 스토어는 내장 된 Derby 데이터베이스입니다. HDP에서,'enableHiveSupport'가 호출 될 때 읽히지 만, spark-shell에서 이미 수행 된'$ SPARK_HOME/conf'에서'hive-site.xml'이 놓이고 읽혀집니다. –

관련 문제