PySpark from_json Схема для ArrayType без имени - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь использовать from_json со следующей строкой JSON, и мне нужно указать схему.Какая схема соответствует этому JSON?

[{"key": "value1"}, {"key": "value2"}]

В качестве обходного пути я делаю конкат строки, чтобы превратить JSON в это (т.е. добавить имя массива).

{ "data": [{"key": "value1"}, {"key": "value2"}] }

Тогда я могу использовать следующую схему.Однако должна быть возможность указать схему без изменения исходного JSON.

schema = StructType([
  StructField("data", ArrayType(
    StructType([
      StructField("key", StringType())
    ])
  ))
])

1 Ответ

0 голосов
/ 11 апреля 2019

Привет Вот пример


df = self.spark.createDataFrame(['[{"key": "value1"}, {"key": "value2"}]'], StringType())
df.show(1, False)

schema = ArrayType(StructType([StructField("key", StringType(), True)]))

df = df.withColumn("json", from_json("value", schema))
df.show()

+--------------------------------------+
|value                                 |
+--------------------------------------+
|[{"key": "value1"}, {"key": "value2"}]|
+--------------------------------------+

+--------------------+--------------------+
|               value|                json|
+--------------------+--------------------+
|[{"key": "value1"...|[[value1], [value2]]|
+--------------------+--------------------+

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...