apache-spark - 使用Value Spark Java API连接数据集中的列

标签 apache-spark hadoop hdfs

我想用$值连接DataSet中的列。

我的数据集就是这样。

+---------+-------------------+
    |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()

原始DataFrame:
+---+---+
| C1| C2|
+---+---+
|111|222|
|333|444|
|555|666|
+---+---+

预期的DataFrame:
+-----+-----+
|NewC1|NewC2|
+-----+-----+
|111 $|222 $|
|333 $|444 $|
|555 $|666 $|
+-----+-----+

关于apache-spark - 使用Value Spark Java API连接数据集中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50187904/

相关文章:

java - App Engine Mapreduce Java无法编译MapReduce Specification.of

hadoop - Hadoop 如何执行输入拆分?

hadoop - MRUnit 不适用于 MultipleOutputs

hadoop - MAX 中的 NULL,HIVE 中的 MIN 函数

apache-spark - 如何计算 RDD 中列表中的项目数

apache-spark - PySpark - 将 RDD 转换为键值对 RDD,值在列表中

hadoop - Hortonworks VM-Hadoop批量上传?

java - Apache Spark Dataframe 如何在使用 groupBy 时关闭部分聚合?

scala - 使用 Redis 进行 Spark 结构化流动态查找

apache-spark - Spark 失败- future 超时