Конкатенация столбца в наборе данных с API-интерфейсом Value Spark - PullRequest
0 голосов
/ 05 мая 2018

Я хочу объединить столбец в моем наборе данных со значением $.

Мой DataSet похож на это.

+---------+-------------------+
    |C1       |       C2          |
    +---------+-------------------+
    |   448631|           -2219.13|
    |   444000|          -12546.84|
    |   411000|           186719.0|

Я хочу получить что-то вроде этого:

+---------+-------------------   +
|C1       |       C2             |
+---------+-------------------   +
|   448631 $|          -2219.13 $|
|   444000 $|         -12546.84 $|
|   411000 $|          186719.0 $|

Кто-нибудь может помочь мне с простым выражением.

1 Ответ

0 голосов
/ 05 мая 2018

Вы можете создавать новые столбцы на основе старых, а затем отбрасывать старые. Ниже приведена реализация 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 $|
+-----+-----+
...