2016-12-04 40 views
-1

计算的数据使用pyspark 2.0.1星火:添加两列,并与来自其他列

我有这样的数据帧填充它们

+-----------+----------+ 
| Longitude | Latitude | 
+-----------+----------+ 
| 1  | 3  | 
| 2  | 1  | 
| 2  | 3  | 
+-----------+----------+ 

我想补充效率两列称为市,省对于每一行,使用列的值(经度和纬度)作为我已经写入的python函数的输入返回城市和省。 所以输出应该是这样的

+-----------+----------+--------+-------- 
    | Longitude | Latitude | City | Province 
    +-----------+----------+--------+-------- 
    | 1  | 3  | London| London 
    | 2  | 1  | Paris | Paris 
    | 2  | 3  | Dubai | Dubai 
    +-----------+----------+--------+-------- 

回答

0
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"])) 
相关问题