Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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_Apache Spark Dataset - Fatal编程技术网

如何在Spark Scala中将两个数组/数据集的大小修改为相同?

如何在Spark Scala中将两个数组/数据集的大小修改为相同?,scala,apache-spark,apache-spark-dataset,Scala,Apache Spark,Apache Spark Dataset,我有两个数组/数据集 scala> data1.collect res2: Array[Array[Double]] = Array(Array(1.0, 100.0), Array(0.7, 100.0), Array(0.8, 50.0)) scala> data2.collect res3: Array[Array[Double]] = Array(Array(0.25, 0.0, 0.0), Array(1.0, 125.0, 0.0), Array(0.5, 0.0, 2

我有两个数组/数据集

scala> data1.collect
res2: Array[Array[Double]] = Array(Array(1.0, 100.0), Array(0.7, 100.0), Array(0.8, 50.0))

scala> data2.collect
res3: Array[Array[Double]] = Array(Array(0.25, 0.0, 0.0), Array(1.0, 125.0, 0.0), Array(0.5, 0.0, 20.0), Array(0.5, 0.0, 15.0))
我希望data1和data2大小相同,内部数组的数量应该相同,在data1中,内部数组的数量是3,在data2中,内部数组的数量是4。我想在data1中添加一个Array0.0、0.0或与data2中相同数量的Array0.0、0.0


请告诉我一种方法。

首先,找出需要添加到data1数据集的新行数。使用问题中的一些示例数据:

val data1 = Seq(Seq(1.0, 100.0), Seq(0.7, 100.0), Seq(0.8, 50.0))
  .toDF("col1").as[Array[Double]]
val data2 = Seq(Seq(0.8, 50.0), Seq(1.0, 125.0, 0.0), Seq(0.5, 0.0, 20.0), Seq(0.5, 0.0, 15.0))
  .toDF("col1").as[Array[Double]]

val diff = data2.count() - data1.count() 
在这种情况下,diff的值为1

接下来,创建一个新的数据集,其中包含适当数量的行,其中仅包含应追加的数组0.0、0.0。然后使用union将此新数据集添加到data1:

结果:

+------------+
|        col1|
+------------+
|[1.0, 100.0]|
|[0.7, 100.0]|
| [0.8, 50.0]|
|  [0.0, 0.0]|
+------------+

如果我理解正确,您有两个数据帧,其中一列包含一个数组。您想向其中一个添加更多行,直到行数相同?这两个都是数据集,我想使记录数相同。如果不相同,请添加值为零的记录
+------------+
|        col1|
+------------+
|[1.0, 100.0]|
|[0.7, 100.0]|
| [0.8, 50.0]|
|  [0.0, 0.0]|
+------------+