无法使用 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数据框保存到配置单元表

无法将数据加载到配置单元表中

pyspark 代码将 dynamodb 表复制到配置单元问题:不允许操作

如何将 txt 文件转换为 parquet 文件并将其加载到 hdfs table-pyspark

PySpark - 遍历每一行数据帧并运行配置单元查询