Как изменить все столбцы на двойной тип в кадре данных искры - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь изменить все столбцы искрового фрейма данных на двойной тип, но я хочу знать, есть ли лучший способ сделать это, чем просто зацикливание столбцов и приведение.

1 Ответ

0 голосов
/ 28 января 2019

С этим кадром данных:

df = spark.createDataFrame(
  [
    (1,2),
    (2,3),
  ],
  ["foo","bar"]
)

df.show()
+---+---+
|foo|bar|
+---+---+
|  1|  2|
|  2|  3|
+---+---+

цикл for, вероятно, является самым простым и более естественным решением.

from pyspark.sql import functions as F

for col in df.columns:
  df = df.withColumn(
    col,
    F.col(col).cast("double")
  )

df.show()
+---+---+
|foo|bar|
+---+---+
|1.0|2.0|
|2.0|3.0|
+---+---+

Конечно, вы также можете использовать понимание Python:

df.select(
  *(
    F.col(col).cast("double").alias(col)
    for col
    in df.columns
  )
).show()

+---+---+
|foo|bar|
+---+---+
|1.0|2.0|
|2.0|3.0|
+---+---+

Если у вас много столбцов, второе решение немного лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...