JSON Список преобразований - PullRequest
0 голосов
/ 05 марта 2020

Мой список (кортежей) JSON значений выглядит следующим образом:

testJson = [('{"drivernumber":1, "speed" : ["30.5", "40", "50", "25.25"]}',),
            ('{"drivernumber":2, "speed" : ["25.25", "10.11", "11", "50"]}',),
            ('{"drivernumber":3, "speed" : ["40", "50", "80", "42"]}',)
           ]

Я создал следующую структуру данных:

from pyspark.sql.types import StructType, StructField, IntegerType, ArrayType, StringType
readSchema = StructType([
                   StructField("drivernumber", IntegerType(), True), 
                   StructField("speed", StringType(FloatType(), True), True)])

Затем создал DataFrame:

df = (spark.read.schema(readSchema).json(sc.parallelize(testJson)))
display(df)

В конечном счете, мне нужно получить вывод ниже, но в данный момент мой DF (после шага выше) имеет только NULLS, и я не знаю почему. Любые предложения или советы будут высоко ценится. Спасибо:)

speed  drivercount
50          3
40          2
25.25       2
11          1
....        ....

1 Ответ

1 голос
/ 05 марта 2020

Вам не нужно определять схему для него, просто используйте

df = spark.read.json(sc.parallelize(testJson))
...