JSON格式如下:

{
  "name": "aaa",
  "address": {
    "street": "blv abc",
    "street_num": "122"
  }
}


我会从实木复合地板文件中读取数据,并对它们执行sql查询,就像找到所有居住在街道blv abc上的人一样。但我只想将nameaddress.street输出为:

{
  "name": "aaa",
  "address": {
    "street": "blv abc"
  }
}


如何仅输出nameaddress.street

DataFrameReader模式可能不适用于我,因为我需要在输出之前执行一些SQL查询,这可能需要在street_num上进行过滤。

最佳答案

对于这种异常数据转换,我的最后一招是

from pyspark.sql.types import Row

def transform(row):
    d = row.asDict()  # now in python data types

    del d['address']['street_num']

    return Row(**d)

new = dataframe.rdd.map(transform)


我想您想删除很多字段以使记录保持苗条,否则确实不值得。

关于python - PySpark-如何输出带有特定字段的JSON?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39386832/

10-11 03:31
查看更多