你好,
我正在學習Scala /火花和試著去理解我的功能:怎麼了
我有一個火花。sql查詢,存儲在一個變量中:
val uViewName =火花。sql (“v”選擇。從apoHierarchy Data_View_Name h內連接apoView h v。View_Name = v。Context_View_Name 1 = 1和h。Step_Number = 1”“”) uViewName.show ()
這給了我正確的結果:
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | Data_View_Name | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | APO_S_VN_E1_APR_U……| + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
然後我想要包成這樣一個函數:
def getUniverse (x: Int):字符串= {var sn = x var stepNumber = x.toString () var uViewName =火花。sql (s”“v”選擇。從apoHierarchy Data_View_Name h內連接apoView h v。View_Name = v。Context_View_Name 1 = 1和h。Step_Number = $ stepNumber " " ")返回uViewName}
所以,我試圖實現的是:
但是,為什麼我得到這個錯誤消息?
command-4245198:14:錯誤:類型不匹配;發現:org.apache.spark.sql。DataFrame(擴大)org.apache.spark.sql.Dataset [org.apache.spark.sql。行)要求:字符串返回uViewName ^
當我改變返回語句:
返回uViewName.toString ()
它似乎工作:
getUniverse:(x: Int)字符串
最後當運行def,不應該得到一個字符串“APO_S_VN_E1_APR_U…”?
val x = getUniverse (1) println (x)
[Data_View_Name: string] x:字符串= [Data_View_Name字符串):
謝謝你任何建議/提示!
嚐試添加當代()(0)它將隻返回值從第一行/列目前你正在返回數據集:
var uViewName =火花。sql (s”“v”選擇。從apoHierarchy Data_View_Name h內連接apoView h v。View_Name = v。Context_View_Name 1 = 1和h。Step_Number = $ stepNumber”“”)當代()(0)