![](/img/trans.png)
[英]Pyspark/NiFi : Converting Multiline rows file to single line row file
[英]Pyspark/Python : Converting csv file which has Multiline rows file to single line row file
我有一個 csv 文件,它的記錄是這樣的多行
id1,id2,id3,id4,id5,id6,id7
1,2,3,4,5,6,7
1,2,3,4
,5,6,
7
1,2
3,4
,5,6,
7
我想像下面這樣更改文件 -
id1,id2,id3,id4,id5,id6,id7
1,2,3,4,5,6,7
1,2,3,4,5,6,7
1,2,3,4,5,6,7
我知道 pyspark 可以使用 multiline :True 選項讀取此類文件,但我想將此文件轉換為單行行,這是業務用例。 我該怎么做。 要使用的技術是 Pyspark 或 Python (Pandas)。 提前致謝
你有沒有想過這樣的事情?
import re
items = re.findall("[^ ,\n]+", """id1,id2,id3,id4,id5,id6,id7
1,2,3,4,5,6,7
1,2,3,4
,5,6,
7
1,2
3,4
,5,6,
7""")
rows = [items[i:i+7] for i in range(0,len(items),7)]
pd.DataFrame(rows[1:], columns=rows[0])
輸出:
id1 id2 id3 id4 id5 id6 id7
0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7
2 1 2 3 4 5 6 7
由於這里要求的是第二部分的無循環版本:
rows = np.array(items).reshape(len(items)//7,7)
pd.DataFrame(rows[1:], columns=rows[0])
我已經測試過使用 jupter 的%%timeit
是否真的可以節省時間:結果是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.