尝试使用 Spark IDF.fit() 时出现 NULL 指针异常
Posted
技术标签:
【中文标题】尝试使用 Spark IDF.fit() 时出现 NULL 指针异常【英文标题】:getting a NULL pointer exception when trying to use Spark IDF.fit() 【发布时间】:2015-12-22 16:03:46 【问题描述】:尝试在 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");
其余代码与上面链接的示例完全相同。 featureizedData 是一个有效的 DataFrame,我打印了它的架构和第一个元素,一切看起来都符合预期。我不知道为什么会出现空指针异常。
【问题讨论】:
任何解决方法? 【参考方案1】:问题是您将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
填充语句。
【讨论】:
以上是关于尝试使用 Spark IDF.fit() 时出现 NULL 指针异常的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 apache spark 加载模块时出现 Databricks 错误 [重复]
尝试从 Jupyter Notebook 使用 Spark 访问 Google Cloud Bigtable 时出现区域错误
尝试使用公共 IP 在 EC2 节点上启动 Spark 主服务器时出现 java.net.BindException
Apache Spark:尝试索引字符串列时出现 ***Error