小编plu*_*cky的帖子

使用Python的Spark SQL:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

我想用Spark SQL测试基本的东西.我想加载一个csv.文件,保存在我的笔记本电脑上,并在其上运行一些SQL查询.但不知何故,我无法使用sqlContext加载数据.我收到错误:

Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient. 
Run Code Online (Sandbox Code Playgroud)

但是,我没有使用Hive.

我正在使用Windows 10并使用Anaconda安装了python.我为hadoop 2.6安装了Spark 2.0.2 prebuild.我使用iPython Notebook作为用户界面.

我的代码如下:

file = "C:/Andra/spark-2.0.2-bin-hadoop2.6/zip.csv"
df = sqlContext\
    .read \
    .format("com.databricks.spark.csv")\
    .option("header", "true")\
    .option("inferschema", "true")\
    .option("mode", "DROPMALFORMED")\
    .load(file)
Run Code Online (Sandbox Code Playgroud)

问题在于Spark SQL,因为我可以使用加载相同的文件

textFile=sc.textFile("C:/Andra/spark-2.0.2-bin-hadoop2.6/zip.csv")
Run Code Online (Sandbox Code Playgroud)

如果我想从Spark SQL文档https://spark.apache.org/docs/latest/sql-programming-guide.html运行示例,我会收到同样的错误.

from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()
df = spark.read.json("C:/Andra/spark-2.0.2-bin-hadoop2.6/examples/src/main/resources/people.json")
Run Code Online (Sandbox Code Playgroud)

我的印象是我可以在不使用Hive的情况下使用Spark SQL,因为我使用的数据是在我的笔记本电脑上保存的.此外,上述相同的文档仅表明:

"Spark SQL的一个用途是执行SQL查询.Spark SQL 可用于从现有的Hive安装中读取数据.有关如何配置此功能的更多信息,请参阅Hive Tables部分."

还有使用Hive创建spark会话的示例.如果使用配置单元是必需的,那么上面的那个将是无用的.

但是,我想配置Hive以查看是否可以解决问题.文档指南(https://spark.apache.org/docs/latest/sql-programming-guide.html#hive-tables)说明

"通过在conf /中放置 hive-site.xml,core-site.xml (用于安全性配置)和hdfs-site.xml (用于HDFS配置)文件 …

pyspark pyspark-sql

2
推荐指数
1
解决办法
5166
查看次数

标签 统计

pyspark ×1

pyspark-sql ×1