2017-12-02 107 views
3
|T 2009-08-26 17:1...| 
|U http://twitter....| 
|  W No Post Title| 
|     | 
|T 2009-11-01 02:4...| 
|U http://twitter....| 
|  W No Post Title| 
|     | 
|T 2009-11-18 16:5...| 
|U http://twitter....| 
|  W No Post Title| 
|     | 

現在我有這樣的數據 我想分組每4行數據。如何加載連續3行的數據集被視爲一個?

所以一個行將包含

T 2009-X-XX U http://xxxx  W xxxxxxx" 

這可能嗎? 或者有沒有辦法把它變成一個csv文件,頭文件是T U和W? 謝謝。

+0

的格式是一致的,它包含一個空行每3行(應該被認爲是一個)? –

回答

1

你可以很容易地合併行,如果你可以在下面的數據幀格式,讓他們:

+-------+--------------------+ 
|line_nr|    line| 
+-------+--------------------+ 
|  0|T 2009-08-26 17:...| 
|  1|U http://twitter...| 
|  2|  W No Post Title| 
|  3|     | 
|  4|T 2009-11-01 02:...| 
|  5|U http://twitter...| 
|  6|  W No Post Title| 
|  7|     | 
|  8|T 2009-11-18 16:...| 
|  9|U http://twitter...| 
|  10|  W No Post Title| 
|  11|     | 
+-------+--------------------+ 

的你可以這樣做:

df 
    .groupBy((floor(($"line_nr")/4)).as("line_group")) 
    .agg((concat_ws("", collect_list($"line"))).as("line")) 
    .show(false) 

+----------+----------------------------------------------------------------------------------+ 
|line_group|line                    | 
+----------+----------------------------------------------------------------------------------+ 
|0   |T 2009-08-26 17:1...U http://twitter....  W No Post Title     | 
|1   |T 2009-11-01 02:4...U http://twitter....  W No Post Title     | 
|2   |T 2009-11-18 16:5...U http://twitter....  W No Post Title     | 
+----------+----------------------------------------------------------------------------------+