在Spark 2.3中,我试图创建标量 pandas udf (矢量化udf),以向数据框添加新列。 此udf将几列(例如25列)作为输入。
使用常规的pyspark udf,我可以通过调用以下命令将所有列传递给udf:
my_udf(struct([df[x] for x in df.columns]))
然后,我的udf可以访问具有所有列的Row对象。
但是,如果我尝试对熊猫udf做同样的事情:
pandas_udf(struct([df[x] for x in df.columns]))
我得到:
TypeError: Unsupported type in conversion from Arrow: struct<id: int64, id2: int64,[etc]>
我期望我可以一次向我的熊猫udf发送几列,并且在我的udf客户端代码中,我会收到一个熊猫数据框作为参数...这可能吗?