python - 如何将熊猫数据框列添加转换为pyspark列添加
问题描述
我想根据 pyspark 数据框中的现有列添加一列。
我可以使用熊猫添加一列
transform_df = transform_df.withColumn('geohash', transform_df.apply(lambda x: pgh.encode(x.lat, x.lng, precision=9)))
如何添加火花?我使用了以下内容,但有一些错误,用户定义的函数不能有多个 arg:
some_udf = F.udf(lambda x: pgh.encode(x.lat, x.lng, precision=9))
transform_df = transform_df.withColumn('geohash',
some_udf(F.col(transform_df['lat'], transform_df['lng'])))
解决方案
由于您的 UDF 需要来自两个不同列的输入,因此您的 lambda 函数还需要有两个参数:
some_udf = F.udf(lambda lat, lng: pgh.encode(lat, lng, precision=9))
# ^^^ ^^^ two parameters corresponding to two input columns below
transform_df = transform_df.withColumn('geohash', some_udf(transform_df['lat'], transform_df['lng']))
推荐阅读
- php - 无需用户输入自动获取数据库值
- python - 如何用python创建流程图?可选:需要支持大多数代码语言
- enums - How do I have a trait field in a struct?
- node.js - 使用嵌套路径时刷新空白页
- python - 附加值时 NumPy 数组中的问题
- ruby-on-rails - 我有 3 个嵌套路由:class/post/comments,我不知道如何在 _form 文件中编写 form_for
- c# - 如何在 ASP.net Core 2.2 中为我的 CRUD Web 应用程序实现基本安全性?
- java - SQL 错误说我没有指定第三个参数
- asp.net-mvc - 我们可以用 ASP.NET Web API 替换 ASP.NET MVC
- java - 使用动作侦听器在文本字段中将双精度显示为整数