Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 结构的Spark数据帧数组_Scala_Apache Spark_Azure Databricks - Fatal编程技术网

Scala 结构的Spark数据帧数组

Scala 结构的Spark数据帧数组,scala,apache-spark,azure-databricks,Scala,Apache Spark,Azure Databricks,我在dataframe中有一列,它是一个数组[始终是单个项],如下所示: root |-- emdaNo: array (nullable = true) | |-- element: struct (containsNull = false) | | |-- _value: string (nullable = true) | | |-- id: string (nullable = true) 我一辈子都搞不懂如何从它那里得到_值,在一个字符串中 假设

我在dataframe中有一列,它是一个数组[始终是单个项],如下所示:

root
 |-- emdaNo: array (nullable = true)
 |    |-- element: struct (containsNull = false)
 |    |    |-- _value: string (nullable = true)
 |    |    |-- id: string (nullable = true)
我一辈子都搞不懂如何从它那里得到_值,在一个字符串中

假设x是数据帧,我尝试了:

x.select($"arrayName._value") // Yields ["myStringHere"]

我怎样才能从
\u 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之前)


谢谢,你在spark 2.4之前提到的很有趣。。。但是这种语法看起来比element_atagrade可读性好得多,后者对于使用Scala/Java等的程序员来说更具可读性。。背景。Spark 2.4中引入了函数
element_at
,对于具有强大SQL背景(索引从1开始)的人来说,它看起来更为熟悉。
+------+
|_value|
+------+
|   foo|
+------+
df.select($"emdaNo._value"(0))
df.select($"emdaNo._value".getItem(0))