pyspark.sql.functions.from_json

pyspark.sql.functions。 from_json ( 上校:ColumnOrName,模式:联盟(pyspark.sql.types.ArrayType,pyspark.sql.types.StructType,pyspark.sql.column.Column,str],选项:可选(Dict(str,str]]=没有一个 )→pyspark.sql.column.Column

解析一个列包含一个JSON字符串MapTypeStringType作为键类型,StructTypeArrayType与指定的模式。返回,对于一个unparseable字符串。

参数
上校 或str

在JSON格式列或列的名字

模式 数据类型或str

StructType, ArrayType StructType或Python字符串DDL-formatted字符串解析json列时使用

选项 东西,可选

选项来控制解析。接受json数据源相同的选项。看到数据源的选择在你使用的版本。

例子

> > >pyspark.sql.types进口*> > >数据=((1,“{”“:1}”)]> > >模式=StructType([StructField(“一个”,IntegerType())))> > >df=火花createDataFrame(数据,(“关键”,“价值”))> > >df选择(from_json(df价值,模式)别名(“json”))收集()(行(json =行(= 1)))> > >df选择(from_json(df价值,“INT”)别名(“json”))收集()(行(json =行(= 1)))> > >df选择(from_json(df价值,“MAP < STRING, INT >”)别名(“json”))收集()行(json = {a: 1}))> > >数据=((1,“[{“a”: 1}]”)]> > >模式=ArrayType(StructType([StructField(“一个”,IntegerType()))))> > >df=火花createDataFrame(数据,(“关键”,“价值”))> > >df选择(from_json(df价值,模式)别名(“json”))收集()行(json =(行(= 1))))> > >模式=schema_of_json(点燃(“‘{“a”: 0}”))> > >df选择(from_json(df价值,模式)别名(“json”))收集()(行(json =行(= None)))> > >数据=((1,“[1,2,3]”)]> > >模式=ArrayType(IntegerType())> > >df=火花createDataFrame(数据,(“关键”,“价值”))> > >df选择(from_json(df价值,模式)别名(“json”))收集()行(json = [1, 2, 3]))