java - java中的dill/pickle等价物,用于序列化java对象以发送到spark udf
问题描述
我正在尝试在 java 中创建一个 spark 应用程序,我需要调用一个需要 2 个参数的 UDF,如下所示
public static void myUdf(Object p1, List<MyClass> p2) {
// custom logic
}
现在我在如下数据框上调用它
df.javaRDD().map(x -> myUdf(p1, myClassObjs)
我收到一个错误Task is not serializable
。如何在将列表传递给 UDF 时对其进行序列化
在python中,我曾经做如下
def my_udf(p1, p2) {
my_class_obj = dill.loads(p2)
# custom logic
}
df.rdd.map(lambda x: my_udf(x, dill.dumps(my_class_obj))
我怎样才能在 Java 中实现同样的目标?
解决方案
推荐阅读
- survey - 有没有办法从 qualtrics 响应中不断更新数据
- java - 如何从 csv 文件中获取特定列并使用 java 将这些列项放入 jComboBox?
- python - 如何使 TensorFlow 模型与空输入一起工作?获取“类型:Null 不是预期的类型:float”
- arrays - Perl:如何将数组数据存储在哈希中并再次提取
- python - 使用 python 进行 Web 抓取/动态内容中的循环问题和使用 panda 的标题
- minecraft - 如何在 NPC 上显示第二层皮肤
- api - 通过 API 将用户添加到 Podio 工作区
- data-structures - 我不明白这不是有效的 BST,有人可以解释一下吗?
- android - 如何仅为某些 XML 文件而不是整个项目文件启用 Android ViewBinding
- bluetooth - 设备和服务未定义的 react-native-ble-plx 的特征写入失败