Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何为spark shell中的spark启用配置单元支持(spark 2.1.1)_Apache Spark_Hive_Apache Spark Sql_Hortonworks Data Platform - Fatal编程技术网

Apache spark 如何为spark shell中的spark启用配置单元支持(spark 2.1.1)

Apache spark 如何为spark shell中的spark启用配置单元支持(spark 2.1.1),apache-spark,hive,apache-spark-sql,hortonworks-data-platform,Apache Spark,Hive,Apache Spark Sql,Hortonworks Data Platform,我正在尝试为spark shell中的spark对象启用配置单元支持,但它不起作用。我用的是Hortonworks HDP。以下是我尝试启用配置单元支持时得到的结果: scala> val spark3 = SparkSession.builder.enableHiveSupport.getOrCreate 17/10/24 21:30:28 WARN SparkSession$Builder: Using an existing SparkSession; some configurat

我正在尝试为spark shell中的spark对象启用配置单元支持,但它不起作用。我用的是Hortonworks HDP。以下是我尝试启用配置单元支持时得到的结果:

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 = org.apache.spark.sql.SparkSession@22f8be7c

scala> spark3.catalog
res3: org.apache.spark.sql.catalog.Catalog = org.apache.spark.sql.internal.CatalogImpl@49c13ecd

在HDP中,
sparkshell
已经使用配置单元支持创建了有效的SparkSession

您得到的警告是
getOrCreate
使用了现有会话

你可以试试

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

另外,您使用的是
spark
而不是
spark3
,因此不清楚
spark.catalog
将向您显示的是该对象的toString信息以外的其他内容。。。它起作用了。您是否尝试过
spark.sql()
?对于代码,很抱歉,spark3.catalog显示的内容与spark.catalog相同。问题是spark.catalog显示的目录类型是org.apache.spark.sql.internal.cataloginpl。如果enableHiveSupport()有效,那么它应该显示org.apache.spark.sql.hive.HiveSessionCatalog。您有什么参考资料可以打印出
HiveSessionCatalog
?该类根本不存在于该包中。我认为spark.sql()可以工作,因为SparkSession在内部实现了一个Hive版本;所以,我认为这就是spark.sql()、spark.catalog和类似的东西起作用的原因。。。不完全是。Spark Thrift服务器与Hive兼容。Spark使用的默认元存储是嵌入式Derby数据库。在HDP中,
hive site.xml
被放置并从
$SPARK\u HOME/conf
读取,在调用
enablehavesupport
时读取,但上次我检查时,这已经在SPARK shell中完成