無法導入timestamp_millis或unix_millis

不能對數據幀直接使用timestamp_millis或unix_millis。您必須首先使用selectExpr()或使用SQL命令。

寫的saritha.shivakumar

最後發布日期:2022年5月20日

問題

您正在嚐試導入timestamp_millisunix_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_millisunix_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使用selectExpr返回結果。

例如筆記本電腦

檢查無法導入timestamp_millis或unix_millis示例筆記本