Scala 如何从不同的表中减去两列?

Scala 如何从不同的表中减去两列?,scala,apache-spark-sql,subtraction,Scala,Apache Spark Sql,Subtraction,我有两个数据表,其中包含id、特征和包含值的平均值。特征由13849值组成 +---+--------------------+ | id| features| +---+--------------------+ | 10|[5.82797050476074...| | 20|[2.75361084938049...| | 30|[-2.2027940750122...| | 40|[4.20199108123779...| | 50|[2.69677162170410.

我有两个数据表,其中包含id、特征和包含值的平均值。特征由13849值组成

+---+--------------------+
| id|            features|
+---+--------------------+
| 10|[5.82797050476074...|
| 20|[2.75361084938049...|
| 30|[-2.2027940750122...|
| 40|[4.20199108123779...|
| 50|[2.69677162170410...|
| 60|[2.65212917327880...|
| 70|[3.83443570137023...|
| 80|[0.45349338650703...|
| 90|[3.12527608871459...|

+---+--------------------+
第二张表:

+------------------+
|             value|
+------------------+
|2.4848911616270923|
|2.4848911616270923|
|2.4848911616270923|
|2.4848911616270923|
|2.4848911616270923|
|2.4848911616270923|
|2.4848911616270923|
|2.4848911616270923|
|2.4848911616270923|
+------------------+
代码:

告诉我错误

由于数据类型不匹配,无法解析“(
features
-2.4848911616270923D)”,因为“(
features
-2.4848911616270923D)”中的类型不同(数组和双精度)。 如何解决

尝试使用:

val dfWithCalculatedFeatures = newDataDF.withColumn("features", (col("features")(0) - 2.4848911616270923)/1.8305483113586494)

我不确定我是否理解您试图实现的目标,但错误信息相当明确:您试图从数组中减去double。事实上,您的
features
列看起来像是包含数组。我想从值中减去特征。有没有办法将数组[Double]转换为Double?您能用.show(false)添加第一个数据帧的输出?非常感谢您的回答。
val dfWithCalculatedFeatures = newDataDF.withColumn("features", (col("features")(0) - 2.4848911616270923)/1.8305483113586494)