對於Spark和SparkR,我相當新,並且可能有一些基本問題。爲什麼Window函數(延遲)在SparkR中不起作用?
本練習的目的是在SparkR中實現窗口函數(lead,lag,rank等)。
我稱爲那裏提到下面的鏈接和Databricks後但沒有利用 -
代碼段我使用:
初始化sqlContext並註冊該數據幀作爲一個臨時表使用 Registertemptable
output_data<-SparkR::sql(sqlContext, "select *,lag(type) over(partition by key order by key) as lag_type from input_data")
的錯誤我們面臨的是:
failure: ``union'' expected but `(' found
另一個建議,我發現是使用一個Hivecontext而非SQLcontext作爲SQLcontext可能不允許所有功能。
在該方法中,初始化Hivecontext並試圖運行HiveQL 做同樣給了我們一個錯誤說:
cannot find table named input_table
問:做我們需要運行類似registertemptable所以一些命令至於允許Hivecontext訪問表?
saveastable可能是一個選項,但從我讀到的內容來看,它將收集S3存儲中的數據,而不是將其存儲在羣集的內存中。
希望對此有所幫助! 謝謝!
人們似乎在這個問題上這麼多的問題。他們並不都很清楚。你願意重溫你的問題嗎? – eliasah