【问题标题】:Parse address function in pysparkpyspark中的解析地址函数
【发布时间】:2021-07-13 12:17:54
【问题描述】:

我想在 PySpark 的数据框中添加一列,地址通过 libpostal 库解析。

import pyspark.sql.functions as sf
from postal.parser import parse_address
df = spark.read.parquet(path_hdfs)
df = df.select("id", "name" ,"street", "cty")\
       .withColumn("address", parse_address(sf.concat(col("street"),sf.lit(" ") ,col("cty"))))\
       .dropDuplicates()

但我得到了错误:

TypeError: 无法将 'Column' 对象转换为字节

如何更改 parse_address 的参数以被该函数接受?

【问题讨论】:

    标签: python apache-spark pyspark user-defined-functions geocoding


    【解决方案1】:

    你需要使用一个UDF来调用Python库,例如

    df = df.select("id", "name" ,"street", "cty")\
           .withColumn("address", 
               sf.udf(parse_address, 'array<struct<val:string,key:string>>')
               (sf.concat("street", sf.lit(" "), "cty"))
           )\
           .dropDuplicates()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      相关资源
      最近更新 更多