Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 从json模式表示创建spark数据帧模式_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark 从json模式表示创建spark数据帧模式

Apache spark 从json模式表示创建spark数据帧模式,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,有没有一种方法可以将数据帧模式序列化为json并在以后对其进行反序列化 用例很简单: 我有一个json配置文件,其中包含我需要读取的数据帧的模式。 我希望能够从现有模式(在数据帧中)创建默认配置我希望能够通过从json字符串中读取来生成稍后使用的相关模式。这有两个步骤:从现有数据帧创建json和从先前保存的json字符串创建模式 从现有数据帧创建字符串 val schema=df.schema val jsonString=schema.json 从json创建架构 import org.ap

有没有一种方法可以将数据帧模式序列化为json并在以后对其进行反序列化

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

这有两个步骤:从现有数据帧创建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]

我将发布一个pyspark版本,以回答阿萨夫的一个问题:

从pyspark.sql.types导入StructType
#将模式从原始数据帧保存到json:
schema_json=df.schema.json()
#从json还原架构:
导入json
new_schema=StructType.fromJson(json.load(schema_json))

谢谢!这将我的数据加载速度从几分钟提高到了几秒钟:D