Apache spark 将数据集中的列与值Spark Java API连接
我想将数据集中的列与$value连接起来 我的数据集是这样的Apache spark 将数据集中的列与值Spark Java API连接,apache-spark,hadoop,hdfs,Apache Spark,Hadoop,Hdfs,我想将数据集中的列与$value连接起来 我的数据集是这样的 +---------+-------------------+ |C1 | C2 | +---------+-------------------+ | 448631| -2219.13| | 444000| -12546.84| | 411000| 186719.0| 我想得到这样
+---------+-------------------+
|C1 | C2 |
+---------+-------------------+
| 448631| -2219.13|
| 444000| -12546.84|
| 411000| 186719.0|
我想得到这样的东西:
+---------+------------------- +
|C1 | C2 |
+---------+------------------- +
| 448631 $| -2219.13 $|
| 444000 $| -12546.84 $|
| 411000 $| 186719.0 $|
有人可以用一个简单的表达式来指导我。您可以在旧列的基础上创建新列,然后删除旧列。以下是Python实现:
from pyspark.sql import functions as F
...
originalDF = spark.createDataFrame([(111, 222), (333, 444), (555, 666)], ['C1', 'C2'])
originalDF.show()
expectedDF = originalDF.withColumn('NewC1', F.concat(F.col('C1'), F.lit(' $')))\
.withColumn('NewC2', F.concat(F.col('C2'), F.lit(' $')))\
.drop(F.col('C1'))\
.drop(F.col('C2'))
expectedDF.show()
原始数据帧:
+---+---+
| C1| C2|
+---+---+
|111|222|
|333|444|
|555|666|
+---+---+
+-----+-----+
|NewC1|NewC2|
+-----+-----+
|111 $|222 $|
|333 $|444 $|
|555 $|666 $|
+-----+-----+
预期数据帧:
+---+---+
| C1| C2|
+---+---+
|111|222|
|333|444|
|555|666|
+---+---+
+-----+-----+
|NewC1|NewC2|
+-----+-----+
|111 $|222 $|
|333 $|444 $|
|555 $|666 $|
+-----+-----+