scala - java.io.NotSerializableException: org.apache.spark.sql.Column 当我使用带有 UDF 的条件创建新列时
问题描述
我根据文本摘要创建了一个数据框,以查找文档频率 (DF) 和逆文档频率 (IDF)。
以下是文档频率和单词标记的列 -
但是,当我尝试使用用户定义的函数计算数据框中每一行的 IDF 时,我得到了提到的错误。
这是 udf(遍历每一行)和函数(计算 IDF)的代码
解决方案
您可能不需要自己编写函数来计算 IDF,因为它已经在 spark-mllib 中实现,请参阅:
https://spark.apache.org/docs/latest/mllib-feature-extraction.html#tf-idf
此外,如果不了解 calcIDF 函数是如何定义的,我们无法对 NotSerializableException 提供太多帮助。
推荐阅读
- php - PHPExcel:某些行在导入时未在我的 .xls 文件中导出,但在我回显输出时显示?
- c# - 如何找出哪个Windows进程正在使用文件?
- javascript - 如何确定同一数组中是否存在重复值?
- php - 如何在 laravel 中为我的购物项目创建 cms 用户类型和常规配置文件
- java - 在 BaseFragment 中使用 dagger2 实例化视图模型
- javascript - 为什么 @ViewChild(NgbDropdown) 在我的组件中不起作用?
- amazon-web-services - 具有 MariaDB 成本的 Amazon RDS
- google-cloud-platform - 有什么方法可以知道从哪个综合索引中获取数据?
- python - 使用 python 在此处的 Map Image API 中的静态图像中绘制线条/路径
- python - 选择 3 个连续值匹配条件的行 - Python、Pandas