簡體   English   中英

無法識別Spark數據框列名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM