Как добавить совершенно не относящийся к делу столбец во фрейм данных при использовании pyspark, spark + databricks - PullRequest
0 голосов
/ 07 апреля 2019

Допустим, у меня есть фрейм данных:

myGraph=spark.createDataFrame([(1.3,2.1,3.0),
                               (2.5,4.6,3.1),
                               (6.5,7.2,10.0)],
                              ['col1','col2','col3'])

Я хочу добавить новый столбец строки, чтобы он выглядел следующим образом:

enter image description here

from pyspark.sql.functions import lit
myGraph=myGraph.withColumn('rowName',lit('xxx'))

До этого момента все значения в rowName равны 'xxx'. Но я не знаю, как добавить новые значения столбца ('col1', 'col2', 'col3') в rowName?

1 Ответ

1 голос
/ 07 апреля 2019

Вы можете создать случайное значение типа int (1-N), используя встроенную функцию rand() и вспомогательную функцию udf, чтобы сгенерировать новую строку следующим образом:

val randColumnUDF = udf((rand: Long) => s"X${rand}")
val N = 10000

df.withColumn("rand", randColumnUDF(rand() * N)).show(false)

+----+
|rand|
+----+
|X1  |
|X8  |
|X6  |
|... |
+----+

Приведенный выше код добавит случайное число от 1 до 10000 к X, создавая значения: X1, X23, ... и т. Д.

...