Ass*_*son 19 apache-spark apache-spark-sql
有没有办法将数据帧模式序列化为json并在以后反序列化?
用例很简单:我有一个json配置文件,其中包含我需要读取的数据帧的模式.我希望能够从现有模式(在数据框中)创建默认配置,并且我希望能够通过从json字符串中读取它来生成稍后要使用的相关模式.
Ass*_*son 43
这有两个步骤:从现有数据帧创建json并从先前保存的json字符串创建模式.
从现有数据框创建字符串
val schema = df.schema
val jsonString = schema.json
Run Code Online (Sandbox Code Playgroud)
从json创建一个模式
import org.apache.spark.sql.types.{DataType, StructType}
val newSchema = DataType.fromJson(jsonString).asInstanceOf[StructType]
Run Code Online (Sandbox Code Playgroud)
mis*_*kin 27
我正在向Assaf回答的问题发布一个pyspark版本:
# Save schema from the original DataFrame into json:
schema_json = df.schema.json()
# Restore schema from json:
import json
new_schema = StructType.fromJson(json.loads(schema_json))
Run Code Online (Sandbox Code Playgroud)