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
Apache spark 将数据集中的列与值Spark Java API连接_Apache Spark_Hadoop_Hdfs - Fatal编程技术网

Apache spark 将数据集中的列与值Spark Java API连接

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| 我想得到这样

我想将数据集中的列与$value连接起来

我的数据集是这样的

+---------+-------------------+
    |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 $|
+-----+-----+