Spark:添加两列并用从其他列计算的数据填充它们
Posted
技术标签:
【中文标题】Spark:添加两列并用从其他列计算的数据填充它们【英文标题】:Spark: add two columns and fill them with data computed from other columns 【发布时间】:2016-12-04 19:21:50 【问题描述】:使用 pyspark 2.0.1
我有这个数据框
+-----------+----------+
| Longitude | Latitude |
+-----------+----------+
| 1 | 3 |
| 2 | 1 |
| 2 | 3 |
+-----------+----------+
我想有效地添加两个名为 City, Province 的列,对于每一行,使用列的值(经度和纬度)作为我已经编写的返回城市和省的 python 函数的输入。 所以输出应该是这样的
+-----------+----------+--------+--------
| Longitude | Latitude | City | Province
+-----------+----------+--------+--------
| 1 | 3 | London| London
| 2 | 1 | Paris | Paris
| 2 | 3 | Dubai | Dubai
+-----------+----------+--------+--------
【问题讨论】:
【参考方案1】:from pyspark.sql.functions import udf
from pyspark.sql.types import StringType
def city(lat, long): your code
def province(lat, long): your code
cityUdf = udf(city, StringType())
provinceUdf = udf(province, StringType())
df2 = df.withColumn("city", cityUdf(df["Latitude"], df["Longitude"]))
df3 = df2.withColumn("province", provinceUdf(df2["Latitude"], df2["Longitude"]))
【讨论】:
以上是关于Spark:添加两列并用从其他列计算的数据填充它们的主要内容,如果未能解决你的问题,请参考以下文章
计算两列之间的不同集,同时使用 agg 函数 Pyspark Spark Session
pandas使用shift偏移dataframe中时间列计算相邻两列的时间差如果shift参数为-1则指定列向上移动1个位置,使用前向填充进行缺失值填充
pandas基于shift偏移dataframe中时间列计算相邻两列的时间差如果shift参数为1则指定列向下移动1个位置,使用后向填充进行缺失值填充