尝试使用Spark IDF.fit()时获取NULL指针异常

时间:2015-12-22 16:03:46

标签: java apache-spark pyspark spark-dataframe

尝试在Spark文档中运行此example。得到以下错误。使用示例的Java版本也会获得相同的错误。我收到错误的确切行是:

idfModel = idf.fit(featurizedData)


Py4JJavaError: An error occurred while calling o1142.fit.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 7 in stage 256.0 failed 1 times, most recent failure: Lost task 7.0 in stage 256.0 (TID 3308, localhost): java.lang.NullPointerException

我使用的数据是通过读取有几千条记录的Json文件获得的。在Java中,我按如下方式阅读文件:

DataFrame myData = sqlContext.read().json("myJsonFile.json");

其余代码与上面链接的示例完全相同。 featurizedData是一个有效的DataFrame,我打印了它的架构,第一个元素和所有内容都按预期显示。我不知道为什么我会得到一个空指针异常。

1 个答案:

答案 0 :(得分:0)

问题是您将nan作为某些列的文本字段。

由于问题被标记为PySpark,请使用

data_nan_imputed = data.fillna("unknown", subset=["text_col1", .., "text_coln"])

如果您要合并多个text_col以组成一个text_col,则这是一个好习惯。否则,您也可以使用

data_nan_dropped = data.dropna()

摆脱nan列,然后拟合该数据集。希望它能工作。

对于scalajava,请使用类似的nan填充语句。