приведение к строке столбца для pyspark dataframe выдает ошибку - PullRequest
0 голосов
/ 17 мая 2019

У меня есть фрейм данных pyspark с двумя столбцами с типами данных:

[('area', 'int'), ('customer_play_id', 'int')]

+----+----------------+
|area|customer_play_id|
+----+----------------+
| 100|        8606738 |
| 110|        8601843 |
| 130|        8602984 |
+----+----------------+

Iхочу преобразовать область столбца в str с помощью команд pyspark, но я получаю ошибку, как показано ниже

Я пробовал ниже

  1. str (df ['area']): но это не изменило тип данныхна стр
  2. df.area.astype (str): выдал «Ошибка типа: неожиданный тип:»
  3. df ['area']. cast (str) То же, что и ошибка выше

Буду признателен за любую помощь. Я хочу, чтобы тип данных области представлял собой строку, используя операцию pyspark dataframe

Ответы [ 3 ]

1 голос
/ 17 мая 2019

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

import pyspark.sql.functions as F
df = df.withColumn("area",F.col("area").cast("string"))
1 голос
/ 18 мая 2019

Вы можете использовать эту функцию UDF

from pyspark.sql.types import FloatType
tofloatfunc = udf(lambda x: x,FloatType())
changedTypedf = df.withColumn("Column_name", df["Column_name"].cast(FloatType()))
1 голос
/ 17 мая 2019

Просто вы можете сделать любой из них -

Option1:

df1 = df.select('*',df.area.cast("string"))

select - Все столбцы, которые вы хотите в df1, должны быть упомянуты в select

Option2:

df1 = df.selectExpr("*","cast(area as string) AS new_area")

selectExpr - все столбцы, которые вы хотите в df1, должны быть указаны в selectExpr

Option3:

df1 = df.withColumn("new_area", df.area.cast("string"))

withColumn добавит новый столбец (дополнительный к существующим столбцам df)

"*" в select и selectExpr представляют все столбцы.

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