我有一个表,其中有1列是序列化的JSON。我想在这个JSON列上应用模式推断。我不知道要作为JSON提取的输入传递的模式(例如:from_json函数)。
我可以在Scala中这样做,
val contextSchema = spark.read.json(data.select("context").as[String]).schema
val updatedData = data.withColumn("context", from_json(col("context"), contextSchema))
如何将此解决方案转换为纯Spark-SQL?
4条答案
按热度按时间p1tboqfb1#
对于
spark-sql
,使用**toDDL
生成模式,然后使用from_json
**中的模式。Example:
vbopmzt12#
可以使用schema_of_json()函数来推断JSON模式。
2q5ifsrm3#
我找到了一个变通办法,
1.将其转换为RDD并使用spark框架读取
1.如果字段/路径事先已知,我们可以使用
sd2nnvve4#
你可以试试这个: