Имена столбцов данных Spark не распознаются - PullRequest
0 голосов
/ 14 мая 2018

Spark dataframe, df, имеет следующие имена столбцов:

scala> df.columns
res6: Array[String] = Array(Age, Job, Marital, Education, Default, Balance,     
Housing, Loan, Contact, Day, Month, Duration, Campaign, pdays, previous,   
poutcome, Approved)

И sql запрос на df по именам столбцов работает нормально:

scala> spark.sql(""" select Age from df limit 2 """).show()
+---+
|Age|
+---+
| 30|
| 33|
+---+

Но когда я пытаюсь использовать withColumn на df, у меня возникают проблемы:

scala> val dfTemp = df.withColumn("temp", df.Age.cast(DoubleType))
.drop("Age").withColumnRenamed("temp", "Age")
<console>:38: error: value Age is not a member of   
org.apache.spark.sql.DataFrame

Код выше взят из здесь .

Спасибо

1 Ответ

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

df.Age не является допустимым способом вызова столбца из кадра данных .правильный путь -

val dfTemp = df.withColumn("temp", df("Age").cast(DoubleType))

, или вы можете сделать

val dfTemp = df.withColumn("temp", df.col("Age").cast(DoubleType))

, или вы можете сделать

import org.apache.spark.sql.functions.col
val dfTemp = df.withColumn("temp", col("Age").cast(DoubleType))

Примечание: df.withColumn("temp", df.Age.cast(DoubleType())) действительно в pyspark

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