Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
在spark scala中强制转换结构数组时的奇怪行为_Scala_Apache Spark_Casting - Fatal编程技术网

在spark scala中强制转换结构数组时的奇怪行为

在spark scala中强制转换结构数组时的奇怪行为,scala,apache-spark,casting,Scala,Apache Spark,Casting,我在使用spark 2.1.1和scala 2.11.8时遇到了一个奇怪的行为: import spark.implicits._ val df = Seq( (1,Seq(("a","b"))), (2,Seq(("c","d"))) ).toDF("id","data") df.show(false) df.printSchema() +---+-------+ |id |data | +---+-------+ |1 |[[a,b]]| |2 |[[c,d]]| +-

我在使用spark 2.1.1和scala 2.11.8时遇到了一个奇怪的行为:

import spark.implicits._

val df = Seq(
  (1,Seq(("a","b"))),
  (2,Seq(("c","d")))
).toDF("id","data")

df.show(false)
df.printSchema()

+---+-------+
|id |data   |
+---+-------+
|1  |[[a,b]]|
|2  |[[c,d]]|
+---+-------+

root
 |-- id: integer (nullable = false)
 |-- data: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- _1: string (nullable = true)
 |    |    |-- _2: string (nullable = true)
现在,我想按照中的建议重命名我的结构字段

现在两行显示相同的数组。我做错了什么

编辑:在spark 2.1.2(以及spark 2.3.0)中,我得到了预期的输出。如果缓存数据帧,也会得到预期的输出:

val df = Seq(
   (1,Seq(("a","b"))),
   (2,Seq(("c","d")))
).toDF("id","data")
.cache

当我在spark 2.1.1和scala 2.11.8中尝试时没有问题。@RameshMaharjan奇怪的是,我可以在3台不同的计算机(windows和linux,以及intellij和spark笔记本)上复制该错误。我只是在windows上尝试intellij,似乎根本没有问题。@RaphaelRoth我在Ubuntu上遇到了与您相同的问题。现在感觉像是行动。在做了一些调试过程之后,我有了一些线索,但仍然不知道根本原因。
+---+-------+
| id|   data|
+---+-------+
|  1|[[c,d]]|
|  2|[[c,d]]|
+---+-------+
val df = Seq(
   (1,Seq(("a","b"))),
   (2,Seq(("c","d")))
).toDF("id","data")
.cache