亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算文件每一行中的逗號數

計算文件每一行中的逗號數

四季花海 2023-05-05 14:24:46
我有一個看起來像的文件 -Col1,Col2,Col3,Col4Value11,Value12,Value13,Value14Value21,Value22,Value23,Value24....我已經將文件加載到 Pyspark 數據框中(我不能使用 python,因為數據集很大)w1 = spark.read.format('csv').options(header='false', inferschema='false').load('./part1')我想檢查每一行是否有相同數量的逗號。有沒有辦法輸出逗號數不等于 3 的行?
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

將 csv 文件讀取為文本并將值拆分,并計算元素。


df = spark.read.text('test.csv')

df.show(10, False)


+-------------------------------+

|value                          |

+-------------------------------+

|Col1,Col2,Col3,Col4            |

|Value11,Value12,Value13,Value14|

|Value21,Value22,Value23,Value24|

+-------------------------------+


import pyspark.sql.functions as F


df2 = df.withColumn('count', F.size(F.split('value', ',')))

df2.show(10, False)


+-------------------------------+-----+

|value                          |count|

+-------------------------------+-----+

|Col1,Col2,Col3,Col4            |4    |

|Value11,Value12,Value13,Value14|4    |

|Value21,Value22,Value23,Value24|4    |

+-------------------------------+-----+


df2.groupBy().agg(F.min('count'), F.max('count')).show(10, False)


+----------+----------+

|min(count)|max(count)|

+----------+----------+

|4         |4         |

+----------+----------+


查看完整回答
反對 回復 2023-05-05
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

由于您想知道錯誤的行,因此唯一的方法就是循環:


In [18]: erroneous_lines = []


In [19]: with open(r'C:\Users\abaskaran\Desktop\mycsv.txt') as fd:

    ...:     for line_num, line in enumerate(fd,1):

    ...:         if len(line.split(',')) != 4:

    ...:             erroneous_lines.append((line_num, line))



In [20]: erroneous_lines

Out[20]:

[(5, 'Value21,Value22,Value23,Value24Value11,Value12,Value13,Value14\n'),

 (6, 'Value21,Value22,Value23\n')]

該erroneous_lines列表將包含一個元組列表,包含行號和行的實際內容,但不包含所有值。


我將 CSV 內容修改為 belowj 只是為了測試:


Col1,Col2,Col3,Col4

Value11,Value12,Value13,Value14

Value21,Value22,Value23,Value24

Value11,Value12,Value13,Value14

Value21,Value22,Value23,Value24Value11,Value12,Value13,Value14

Value21,Value22,Value23

Value11,Value12,Value13,Value14

Value21,Value22,Value23,Value24

Value11,Value12,Value13,Value14

Value21,Value22,Value23,Value24


查看完整回答
反對 回復 2023-05-05
  • 2 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號