我想用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配置)文件 …