尝试在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,我打印了它的架构,第一个元素和所有内容都按预期显示。我不知道为什么我会得到一个空指针异常。
答案 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
列,然后拟合该数据集。希望它能工作。
对于scala
或java
,请使用类似的nan
填充语句。