我正在從雪花中的 Store 表中讀取資料。我想將資料框 maxdatefromtbl 中的日期傳遞給我在 spark sql 中的查詢以過濾記錄。此條件 (s"CREATED_DATE!='$maxdatefromtbl'") 未按預期作業
var retail = spark.read.format("snowflake").options(options).option("query","Select MAX(CREATED_DATE) as CREATED_DATE from RSTORE").load()
val maxdatefromtbl = retail.select("CREATED_DATE").toString
var retailnew = spark.read.format("snowflake").options(options).option("query","Select * from RSTORE").load()
var finaldataresult = retailnew.filter(s"CREATED_DATE!='$maxdatefromtbl'")
uj5u.com熱心網友回復:
從資料框中選擇一個值retail以在過濾器中使用。
val maxdatefromtbl = retail.select("CREATED_DATE").collect().head.getString(0)
var finaldataresult = retailnew.filter(col("CREATED_DATE") =!= maxdatefromtbl)
的型別retail.select("CREATED_DATE")是DataFrame,并DataFrame.toString回傳架構而不是您擁有的單行的值。請參閱Spark shell中的以下示例。
scala> val s = Seq(1, 2, 3).toDF()
scala> s.select("value").toString
res0: String = [value: int]
在上面截取的代碼的第一行中,collect()將資料框(在您的情況下為一行)包裝在一個陣列中;head獲取陣列的第一個元素,并從索引為.getString(0)的單元格中獲取值。有關更多資訊,請參閱DataFrame和Row檔案頁面。0String
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/522042.html
標籤:斯卡拉阿帕奇火花pysparkapache-spark-sql
