問題
您正在嚐試導入timestamp_millis或unix_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_millis或unix_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或unix_millis示例筆記本.