3
XMLとして提供されるデータセットがあり、ノードの1つにJSONが含まれています。 SparkはこれをStringTypeとして読み込んでいるので、from_json()を使用してJSONをDataFrameに変換しようとしています。スパークfrom_json - StructTypeとArrayType
JSONの文字列を変換できますが、配列を操作するためのスキーマを作成するにはどうすればよいですか?アレイなし
文字列 - アレイとうまく
import org.apache.spark.sql.functions._
val schemaExample = new StructType()
.add("FirstName", StringType)
.add("Surname", StringType)
val dfExample = spark.sql("""select "{ \"FirstName\":\"Johnny\", \"Surname\":\"Boy\" }" as theJson""")
val dfICanWorkWith = dfExample.select(from_json($"theJson", schemaExample))
dfICanWorkWith.collect()
// Results \\
res19: Array[org.apache.spark.sql.Row] = Array([[Johnny,Boy]])
作業文字列 - 問題は、あなたが完全修飾JSONを持っていないということです
import org.apache.spark.sql.functions._
val schemaExample2 = new StructType()
.add("", ArrayType(new StructType()
.add("FirstName", StringType)
.add("Surname", StringType)
)
)
val dfExample2= spark.sql("""select "[{ \"FirstName\":\"Johnny\", \"Surname\":\"Boy\" }, { \"FirstName\":\"Franky\", \"Surname\":\"Man\" }" as theJson""")
val dfICanWorkWith = dfExample2.select(from_json($"theJson", schemaExample2))
dfICanWorkWith.collect()
// Result \\
res22: Array[org.apache.spark.sql.Row] = Array([null])