преобразовать искровой столбец вложенного json в строку - PullRequest
0 голосов
/ 27 февраля 2020

Я относительно новичок в зажигании / scala, и у меня возникла следующая проблема, я надеюсь, вы поможете мне с этим. Чтобы мой алгоритм хеширования работал, мне нужно преобразовать поле типа массива в строку. Схема ниже похожа на то, с чем я имею дело:

+-----------------+----------------+
| records         | Partition      |
+-----------------+----------------+
| [{data:[{...}..]| 20200101       |
+-----------------+----------------+
| [{data:[{...}..]| 20200102       |
+-----------------+----------------+

The field types are: {records: array, partition: string}

Все, что я хочу, - преобразовать поле записи в строку, в духе:

[{data:[{...}..] --> "[{data:[{...}..]"

Любой Помощь в этом будет принята с благодарностью.

Спасибо.

1 Ответ

1 голос
/ 27 февраля 2020

Было бы полезно иметь вашу схему данных (используя df.printSchema). Но на простом примере мне удалось сделать это с помощью простого приведения, подобного этому:

import org.apache.spark.sql.types._
val castDf = df.withColumn("ArrrayToString", $"myColName".cast(StringType))
...