Spark Scala中如何调整两个数组/数据集的内部元素数量至相同?
解决Scala数组长度对齐问题
嗨,这事儿好办!我们只需要先算出两个数组的长度差,然后给data1补充对应数量的Array(0.0, 0.0)就行,具体步骤和代码如下:
步骤1:获取两个数组的内部元素数量
先拿到data1和data2各自包含的内部数组个数:
val data1Size = data1.length val data2Size = data2.length
步骤2:计算需要补充的元素数量
算出data2比data1多的内部数组个数(如果data1本身更长,就不需要补充任何元素):
val numToAdd = math.max(data2Size - data1Size, 0)
步骤3:生成补充数组并完成拼接
用Array.fill生成指定数量的Array(0.0, 0.0),再和原data1拼接在一起:
val alignedData1 = data1 ++ Array.fill(numToAdd)(Array(0.0, 0.0))
验证结果
针对你的示例数据,data2有4个内部数组,data1原本有3个,所以会自动补充1个Array(0.0, 0.0),最终alignedData1的结构就是:
Array(Array(1.0, 100.0), Array(0.7, 100.0), Array(0.8, 50.0), Array(0.0, 0.0))
内容的提问来源于stack exchange,提问作者pooja
相关产品推荐
相关产品推荐

