Apache pyspark ML示例不起作用

时间:2016-09-18 04:37:36

标签: python-2.7 apache-spark pyspark

我在这个网页上尝试了ML示例(IndexToString):http://spark.apache.org/docs/latest/ml-features.html#onehotencoder,使用jupyter notebook(运行Pyspark)创建一个简单的df(数据帧),并且我不断收到长错误消息。其中一条线说:

  

Py4JJavaError:调用o23.applySchemaToPythonRDD时发生错误。   :java.lang.RuntimeException:java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

请帮助,这是否意味着我需要先建立一个RDD来构建一个DataFrame?此外,我尝试了MLlib方法,它工作正常,它是ML方法,一直给我错误。

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的火花?链接中的示例需要spark 2.0.0

在此链接中,您可以找到spark 1.6.2的示例 - 经过测试可以在我的机器上运行 http://spark.apache.org/docs/1.6.2/ml-features.html#onehotencoder

from pyspark.ml.feature import OneHotEncoder, StringIndexer

df = sqlContext.createDataFrame([
    (0, "a"),
    (1, "b"),
    (2, "c"),
    (3, "a"),
    (4, "a"),
    (5, "c")
], ["id", "category"])

stringIndexer = StringIndexer(inputCol="category", outputCol="categoryIndex")
model = stringIndexer.fit(df)
indexed = model.transform(df)
encoder = OneHotEncoder(dropLast=False, inputCol="categoryIndex", outputCol="categoryVec")
encoded = encoder.transform(indexed)
encoded.select("id", "categoryVec").show()