Предположим, файлы построены следующим образом:
Код: Выделить всё
{
"id": 1,
"name": "Homer",
"address": {
"street": "742 Evergreen Terrace"
"city": "Springfield"
}
}
Код: Выделить всё
from pyspark.sql.functions import *
sourcejson = spark.read.json("path/to/json")
df = (
sourcejson.select(
col('id'),
col('name'),
col('address.street').alias('street'),
col('address.city').alias('city')
)
)
Код: Выделить всё
id | name | street | city
1 | Homer | 742 Evergreen Terrace | Springfield
Код: Выделить всё
{
"id": 2,
"name": "Ned",
"address": null
}
Код: Выделить всё
id | name | street | city
2 | Ned | null | null
Код: Выделить всё
[INVALID_EXTRACT_BASE_FIELD_TYPE] Can't extract a value from "address". Need a complex type [STRUCT, ARRAY, MAP] but got "STRING"
Подробнее здесь: https://stackoverflow.com/questions/786 ... ay-be-null