[英]Spark dataframe column names not being recognized
Spark數據框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)
並且通過列名稱對df進行sql查詢可以正常工作:
scala> spark.sql(""" select Age from df limit 2 """).show()
+---+
|Age|
+---+
| 30|
| 33|
+---+
但是當我嘗試在df上使用withColumn時遇到了問題:
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
上面的代碼是從這里獲取的 。
謝謝
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中有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.