無法導入timestamp_millis或unix_millis

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

寫的saritha.shivakumar

最後發布時間:2022年5月20日

問題

您正在嚐試導入timestamp_millisunix_millis進入Scala筆記本,但會得到一個錯誤消息。

% scala org.apache.spark.sql.functions進口。{timestamp_millis, unix_millis}
錯誤:值timestamp_millis不是對象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如果你想在數據幀中使用它們中的任何一個。

selectExpr ()獲取一組SQL表達式並運行它們。

例如,此示例代碼在運行時返回一條錯誤消息。

% scala sqlContext.implicits進口。_ 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()
錯誤:值unix_millis不是對象org.apache.spark.sql.functions的成員

而此示例代碼,使用selectExpr (),成功返回時間戳值。

% scala org.apache.spark.sql.functions進口。_進口sqlContext.implicits。_ val ndf = Seq((1, "第一值"),(2,"第二值"))。toDF(“int_column”、“string_column”)顯示(ndf.selectExpr(“timestamp_millis int_column "))

timestamp_millis使用selectExpr返回結果。

例如筆記本電腦

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