无法使用 pyspark 将数据加载到配置单元中
Posted
技术标签:
【中文标题】无法使用 pyspark 将数据加载到配置单元中【英文标题】:unable load data into hive using pyspark 【发布时间】:2020-03-26 04:52:11 【问题描述】:无法通过 jupyter notebook 使用 pyspark 将数据写入 hive。
给我下面的错误
Py4JJavaError:调用 o99.saveAsTable 时出错。 : org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.RuntimeException: 无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;
注意这些步骤已经尝试过:
-
将hdfs-site.xml、core-site.xml复制到hive的/conf中
删除了 metasotore_db 并使用下面的 cmd 再次创建
$HIVE_HOME/bin/schematool –initschema –dbtype derby
【问题讨论】:
from pyspark import SparkContext, SparkConf from pyspark.sql import SparkSession, HiveContext SparkContext.setSystemProperty("hive.metastore.uris", "thrift://localhost:10000") sparkSession = SparkSession.builder。 appName("example-pyspark-read-and-write").getOrCreate() data = [('First', 1), ('Second', 2), ('Third', 3), ('Fourth', 4), ('Fifth', 5)] df = sparkSession.createDataFrame(data) df.show() # 写入Hive df.write.saveAsTable('example' 这段代码我试过并给了我错误:org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate 【参考方案1】:您是否使用 spark-submit 来运行您的脚本? 你也应该像这样添加->“.enableHiveSupport()”:
spark = SparkSession.builder \
.appName("yourapp") \
.enableHiveSupport() \
.getOrCreate()
【讨论】:
以上是关于无法使用 pyspark 将数据加载到配置单元中的主要内容,如果未能解决你的问题,请参考以下文章
PySpark 无法通过 sparkContext/hiveContext 读取 Hive ORC 事务表?我们可以使用 Pyspark 更新/删除配置单元表数据吗?
pyspark 代码将 dynamodb 表复制到配置单元问题:不允许操作