python计算结果传给spark_如何将DataFrame作为输入传递给Spark UDF?

该博客探讨如何在Spark中处理DataFrame,尤其是如何将Python计算结果传递给Spark UDF。作者展示了如何通过多个数据帧进行复杂的数据操作,包括过滤、合并、排序和计算,以达到特定的分析目标。在示例中,作者试图找出满足特定条件的最低总分,并遇到一个错误('Py4JError' object has no attribute 'message')。博客寻求解决方案或优化现有方法。
摘要由CSDN通过智能技术生成

我有一个数据帧,我想对每一行应用一个函数。此函数依赖于其他数据帧。在

简化示例。我有三个数据帧,如下所示:df = sc.parallelize([

['a', 'b', 1],

['c', 'd', 3]

]).toDF(('feat1', 'feat2', 'value'))

df_other_1 = sc.parallelize([

['a', 0, 1, 0.0],

['a', 1, 3, 0.1],

['a', 3, 10, 1.0],

['c', 0, 10, 0.2],

['c', 10, 25, 0.5]

]).toDF(('feat1', 'lower', 'upper', 'score'))

df_other_2 = sc.parallelize([

['b', 0, 4, 0.1],

['b', 4, 20, 0.5],

['b', 20, 30, 1.0],

['d', 0, 5, 0.05],

['d', 5, 22, 0.9]

]).toDF(('feat1', 'lower', 'upper', 'score'))

对于df的每一行,我想从df_other_1和{}收集{}和{}的唯一上限值,即对于第一行,唯一值是(1、3、10、4、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值