比如說像這樣的一條資料:
("1",seq("你好","我愛"))
想轉化為如下形式:
(1,你好)
(1,我愛)
直接擼**:
這裡面的轉化看懂了麼。其實很簡單,生成乙個list,list((1,你好), (1,我愛)),然後就是wordcount裡面使用的flatmap把list打扁生成乙個大的list。然後使用zipwithindex生成乙個有序id,一定要collect才會生效。
注意:因為使用了collect,所以只有在資料量不大的時候才能用該方法。不然的話,:) 自己試試就知道了。
import org.apache.spark.rdd.rdd
import org.apache.spark.
object wordcount ).map(x=>)
println(arr)
arr}).flatmap(x=>x).zipwithindex().collect().foreach(println)
}}
複製貼上跑一下就知道了
希望能幫到有需要的朋友。
使用LISTAGG函式進行行轉列
語法 listagg exp1,exp2 集函式 首先根據 sql 語句中的 group by 分組 如果 沒有指定分組則所有結果集為一組 然後在組內按照 within group 中的 order by 進行排序,最後將表示式 exp1 用表示式 exp2 串接起來 listagg 的用法 引數 ...
sql sql查詢進行行轉列的操作
最近遇到了乙個很是動態化的查詢需求,要求的列數是動態載入的,而不是固定的列數,並且列內容的由來都是通過動態聯查得到的,所以很是棘手,需要用到行轉列的這種sql查詢方式。行轉列的用法有的時候體現在乙個第三條件介入問題的關聯,我們都知道,我們做查詢的時候,實際上查詢出來的是一張表,直觀來看是乙個二維的資...
列轉行 行轉列
問題 使用case when實現行轉列 解決 1 測試準備 create table studentscores username nvarchar2 20 學生姓名 subject nvarchar2 30 科目 score float 成績 2 準備資料 insert into students...