我在Pyspark中有这样一个框架:
data = [("definitely somewhere",), ("Las Vegas",), ("其他",), (None,), ("",), ("Pucela Madrid Langreo, España",), ("Trenches, With Egbon Adugbo",)]
df = spark.createDataFrame(data, ["address"])
city_country = {
'las vegas': 'US',
'lagos': 'NG',
'España': 'ES'
}
cities_name_to_code = spark.sparkContext.broadcast(city_country )
df_with_codes = df.withColumn('cities_array', F.lower(F.col('address'))) \
.withColumn('cities_array', F.split(F.col('cities_array'), ', '))
字符串
我想在cities_array
中找到cities_name_to_code
中每个元素的所有键(得到一个值数组)。问题是我不想使用UDF。
1条答案
按热度按时间kuhbmx9i1#
对于这个用例,你可以使用
transform
高阶函数,并将case作为它内部的函数传递。这里有一个例子
字符串