2016-11-10 71 views
0

我試圖通過看一些their examplesgetting started tutorials來熟悉火花。我想加載一個文本文件,其中包含由選項卡分隔的兩列數字,然後從中創建一個數據框。我希望用下面的命令來做到這一點:無法在火花中創建DataFrame?

>>> data = sc.textFile("amazon.txt") 
>>> df = data.map(lambda r: [int(x) for x in r.split("\t")]) 
>>> df = df.toDF() 

但是,當我執行的最後一個命令,它拋出的錯誤:

u'Unable to locate hive jars to connect to metastore. Please set spark.sql.hive.metastore.jars.' 

完整的堆棧跟蹤:

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/spark-2.0.1-bin-hadoop2.7/python/pyspark/sql/session.py", line 57, in toDF 
    return sparkSession.createDataFrame(self, schema, sampleRatio) File "/spark-2.0.1-bin-hadoop2.7/python/pyspark/sql/session.py", line 526, in createDataFrame 
    jdf = self._jsparkSession.applySchemaToPythonRDD(jrdd.rdd(), schema.json()) File "/spark-2.0.1-bin-hadoop2.7/python/lib/py4j-0.10.3-src.zip/py4j/java_gateway.py", line 1133, in __call__ File "/spark-2.0.1-bin-hadoop2.7/python/pyspark/sql/utils.py", line 79, in deco 
    raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace) pyspark.sql.utils.IllegalArgumentException: u'Unable to locate hive jars to connect to metastore. Please set spark.sql.hive.metastore.jars.' 

基於看起來像是我需要設置一個叫spark.sql.hive.metastore.jars的東西,但我不知道這是什麼或在哪裏設置它。

任何人都可以指出我正確的方向來解決這個問題,所以我可以創建一個數據框?

回答

1

如果您使用的火花1.5或更高版本則有可能,你可能有spark.sql.hive.metastore.jars

多或錯誤的版本,您可以添加以下設置爲$ SPARK_HOME/conf目錄/ spark_defaults.conf

火花.sql.hive.metastore.version XXX

spark.sql.hive.metastore.jars Maven的

如果設置spark.sql.hive.metastore.jars到Maven那麼適當的罐子會被下載並添加到t他的類路徑。你也可以將它設置爲像/ usr/hive/lib/這樣的普通Java類路徑:/ usr/hadoop/lib/

希望這有助於。

+0

'X.X.X'應該有什麼價值?我試過火花的版本,我正在使用'2.0.1',它是我正在使用的Spark版本,但這似乎不起作用。 –

+0

這將是你的Hive版本。類似0.14.0 – user7005835