2 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
get_json_object
Spark 中存在一個(gè)函數(shù)。建議,您有一個(gè)名為 的數(shù)據(jù)框df
,您可以選擇這種方式來解決您的問題:
df.selectExpr("get_json_object(json, '$.a') as name", "get_json_object(json, '$.b') as age" )
但首先,確保你的json
屬性有雙引號(hào)而不是單引號(hào)。
注意: 這里有完整的 Spark SQL 函數(shù)列表。我正在大量使用它??紤]將其添加到書簽和不時(shí)參考。

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
你可以使用 UDF
def parseName(json: String): String = ??? // parse json
val parseNameUDF = udf[String, String](parseName)
def parseAge(json: String): Int = ??? // parse json
val parseAgeUDF = udf[Int, String](parseAge)
dataFrame
.withColumn("name", parseNameUDF(dataFrame("json")))
.withColumn("age", parseAgeUDF(dataFrame("json")))
添加回答
舉報(bào)