在尝试执行简单的SQL查询时,pyspark.sql出现问题,但是出现以下错误:
AnalysisException:'org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;'
最初读取Hive表的代码可以正常工作:
df = spark.read.csv(“ hdfs:// localhost:54310 / user / hduser / creditfraud / creditscoring.csv”, header = True,sep =',',inferSchema = True)df.printSchema()
但是,一旦我运行spark.sql,就会遇到一些麻烦:
df.createOrReplaceTempView(“ CreditTempTable”)
df1 = spark.sql(“ SELECT * FROM CreditTempTable LIMIT 10”)df1.show()
Hive 2.3.5正常工作,我可以看到表并在其中运行SQL代码,因此我认为问题出在以下Spark和Linux配置文件中:
spark-defaults.conf:
spark.sql.hive.metastore.version 2.3.0
spark.sql.hive.metastore.jars / usr / local / hive / lib / :/ usr / local / hadoop / share / hadoop /
.bashrc配置文件:
设置HIVE_HOME导出
HIVE_HOME = / usr / local / hive 导出HIVE_CONF_DIR = / usr / local / hive / conf PATH = $ PATH:$ HIVE_HOME / bin 导出路径 导出HADOOP_CLASSPATH = $ HADOOP_CLASSPATH:/ usr / local / hive / lib / *
设置Spark变量
导出SPARK_HOME = / usr / local / spark PATH = $ PATH:$ SPARK_HOME / bin 导出PYSPARK_PYTHON = python3导出 PYSPARK_DRIVER_PYTHON = jupyter导出 PYSPARK_DRIVER_PYTHON_OPTS =“笔记本”
如果您能帮助我弄清问题的根源,我将不胜感激。