我想通过sparksql删除配置单元表。sparksql drop hive表
在安装了hadoop 2.6,hive 2.0,spark 1.6和spark 2.0的群集中。我在pyspark shell中尝试了下面的代码,并用这两个版本的火花提交作业。
sqlContext.sql('drop table test') //spark 1.6
spark.sql('drop table test') //spark 2.0
两个代码在pyspak壳很好,我可以从蜂巢CLI的测试表不复存在看到。
但是,如果代码是在python文件中,后来通过spark-submit提交给群集,代码从未生效。
火花2.0甚至给有关
pyspark.sql.utils.AnalysisException: u"Table to drop '`try`' does not exist;"
我抄蜂房的site.xml到火花conf目录错误。
通过sparksql删除配置单元表的正确方法是什么?
更新:
我试过相比火花壳和我使用下面的代码
spark-submit --master yarn --deploy-mode cluster try_spark_sql.py
在火花shell环境submiited工作之间的火花的环境中,我可以看到火花。 sql.catalogImplementation设置为配置单元
在使用上述代码提交的作业中。环境不包含spark.sql.catalogImplementation 我尝试使用下面的代码设置它:
spark = SparkSession.builder.appName("PythonSQL").config("spark.sql.catalogImplementation","hive").
但它不会对环境造成任何影响。
一个解决办法,我发现是使用提交客户模式代替集群模式下工作。然后,可以成功删除配置单元表。
问题,你在你的spark-submit脚本中使用sqlContext上下文吗? –
当然,我没有添加那部分代码。 sparkcontx像往常一样初始化,并且使用sqllContxt.sql可以成功读取.orc文件。 –