問題
您正在嚐試導入timestamp_millis或unix_millis進入Scala筆記本,但得到一個錯誤消息。
導入org.apache.spark.sql.functions。{timestamp_millis, unix_millis}
錯誤:value timestamp_millis is not a member of object org.apache.spark.sql.functions import org.apache.spark.sql.functions。{timestamp_millis, unix_millis}
導致
的函數timestamp_millis而且unix_millis在Apache Spark中不可用DataFrame API.
這些函數是特定於SQL的包含在Spark 3.1.1及以上版本中.
解決方案
你需要使用selectExpr ()與timestamp_millis或unix_millis如果你想在DataFrame中使用它們中的任何一個。
selectExpr ()獲取一組SQL表達式並運行它們。
例如,這個示例代碼在運行時返回一條錯誤消息。
%scala導入sqlcontext . implits。_ val df = Seq((1,“第一個值”),(2,“第二個值”))。toDF("int_column", "string_column")導入org.apache.spark.sql.functions。{unix_millis} import org.apache.spark.sql.functions.col df.select(unix_millis(col("int_column"))).show()
錯誤:value unix_millis is not a member of object org.apache.spark.sql.functions import org.apache.spark.sql.functions.{unix_millis}
而這個示例代碼,使用selectExpr (),成功返回時間戳值。
導入org.apache.spark.sql.functions。_ import sqlcontext . implits。_ val ndf = Seq((1,“第一個值”),(2,“第二個值”))。toDF("int_column", "string_column") display(ndf.selectExpr("timestamp_millis(int_column)"))
例如筆記本電腦
檢查無法導入timestamp_millis或unix_millis示例筆記本.