2016-12-04 89 views
1

有没有办法将数据帧模式序列化为json并在以后反序列化?从JSON模式表示创建火花数据帧模式

用例很简单: 我有一个json配置文件,其中包含我需要阅读的数据框架。 我希望能够从现有模式(在数据框中)创建默认配置,我希望能够通过从json字符串中读取它来生成稍后使用的相关模式。

回答

7

有两个步骤:从现有数据框创建json,并从先前保存的json字符串中创建模式。

从现有的数据帧创建的字符串

val schema = df.schema 
val jsonString = schema.json 

创建JSON的模式

import org.apache.spark.sql.types.{DataType, StructType} 
val newSchema = DataType.fromJson(jsonString).asInstanceOf[StructType]