JSON格式如下:
{
"name": "aaa",
"address": {
"street": "blv abc",
"street_num": "122"
}
}
我会从镶木地板文件中读取数据并对它们执行sql查询,例如查找居住在街道blv abc
的所有人。但我只想将name
和address.street
输出为:
{
"name": "aaa",
"address": {
"street": "blv abc"
}
}
如何仅输出name
和address.street
?
DataFrameReader架构可能对我不起作用,因为我需要在输出之前执行一些SQL查询,这可能需要在street_num
上进行过滤。
答案 0 :(得分:1)
我对这种不寻常的数据转换的最后手段是
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)
我想你想删除很多字段以保持记录的纤薄,否则它并不值得。