Я создал фрейм данных поверх файла паркета и теперь могу видеть схему фрейма данных. Теперь я хочу создать фрейм данных поверх вывода printschema
df = spark.read.parquet("s3/location")
df.printschema()
вывод выглядит как [(cola, string), (colb, string)] Теперь я хочу создать dataframe на выходе printschema.Что было бы лучшим способом сделать это
Добавление большего количества входных данных о том, что было достигнуто к настоящему времени -
df1 = sqlContext.read.parquet("s3://t1")
df1.printSchema()
Мы получили следующий результат -
root
|-- Atp: string (nullable = true)
|-- Ccetp: string (nullable = true)
|-- Ccref: string (nullable = true)
|-- Ccbbn: string (nullable = true)
|-- Ccsdt: string (nullable = true)
|-- Ccedt: string (nullable = true)
|-- Ccfdt: string (nullable = true)
|-- Ccddt: string (nullable = true)
|-- Ccamt: string (nullable = true)
Мы хотим создать фрейм данных с двумя столбцами - 1) colname, 2) datatype
Но если мы запустим следующий код -
schemaRDD = spark.sparkContext.parallelize([df1.schema.json()])
schema_df = spark.read.json(schemaRDD)
schema_df.show()
Мы получим вывод ниже, где мы получим весьимена столбцов и тип данных в одной строке -
+--------------------+------+
| fields| type|
+--------------------+------+
|[[Atp,true,str...|struct|
+--------------------+------+
Поиск вывода, например
Atp| string
Ccetp| string
Ccref| string
Ccbbn| string
Ccsdt| string
Ccedt| string
Ccfdt| string
Ccddt| string
Ccamt| string