结构的 Spark Dataframe 数组
Spark Dataframe Array of Struct
我在数据框中有一个列,它是一个数组[总是单个项目],看起来像这样:
root
|-- emdaNo: array (nullable = true)
| |-- element: struct (containsNull = false)
| | |-- _value: string (nullable = true)
| | |-- id: string (nullable = true)
我这辈子都想不出如何从中获取 _value,并将其转化为字符串...
假设 x 是数据帧,我试过:
x.select($"arrayName._value") // Yields ["myStringHere"]
和
x.select($"arrayName[0]._value") // Errors
请问如何得到 _value
中保存的值的漂亮字符串?
case class Element(_value: String, id: String)
val df = Seq(Array(Element("foo", "bar"))).toDF("emdaNo")
df.select(element_at($"emdaNo._value", 1) as "_value").show()
输出:
+------+
|_value|
+------+
| foo|
+------+
或者(在 Spark 2.4 之前)
df.select($"emdaNo._value"(0))
或
df.select($"emdaNo._value".getItem(0))
我在数据框中有一个列,它是一个数组[总是单个项目],看起来像这样:
root
|-- emdaNo: array (nullable = true)
| |-- element: struct (containsNull = false)
| | |-- _value: string (nullable = true)
| | |-- id: string (nullable = true)
我这辈子都想不出如何从中获取 _value,并将其转化为字符串...
假设 x 是数据帧,我试过:
x.select($"arrayName._value") // Yields ["myStringHere"]
和
x.select($"arrayName[0]._value") // Errors
请问如何得到 _value
中保存的值的漂亮字符串?
case class Element(_value: String, id: String)
val df = Seq(Array(Element("foo", "bar"))).toDF("emdaNo")
df.select(element_at($"emdaNo._value", 1) as "_value").show()
输出:
+------+
|_value|
+------+
| foo|
+------+
或者(在 Spark 2.4 之前)
df.select($"emdaNo._value"(0))
或
df.select($"emdaNo._value".getItem(0))