Python 调整Pyspark数据框中CSV文件数据的错误数据
我试图将CSV文件读入Pyspark中的数据帧,但我有一个包含混合数据的CSV文件。其部分数据属于其相邻列。是否有任何方法可以修改python中的数据帧以获得预期的输出数据帧 示例CSVPython 调整Pyspark数据框中CSV文件数据的错误数据,python,pyspark,pyspark-dataframes,Python,Pyspark,Pyspark Dataframes,我试图将CSV文件读入Pyspark中的数据帧,但我有一个包含混合数据的CSV文件。其部分数据属于其相邻列。是否有任何方法可以修改python中的数据帧以获得预期的输出数据帧 示例CSV ID , Name '1' , 'Alice' '2B' , 'ob' '3Ri' , 'chard' 预期产量 ID, Name 1, 'Alice' 2, 'Bob' 3, 'Richard' 可以通过使用pyspark.sql.functions中的regexp\u extract来实
ID , Name
'1' , 'Alice'
'2B' , 'ob'
'3Ri' , 'chard'
预期产量
ID, Name
1, 'Alice'
2, 'Bob'
3, 'Richard'
可以通过使用
pyspark.sql.functions
中的regexp\u extract
来实现这一点
我的方法是这样的:
#使用不同的分隔符读取,以便使用单个列生成df
df=spark.read.csv('filename',header=True,sep='|')
#使用irr重命名列名(以便于调用)
newcolnames=['irr']
对于zip中的c,n(df.columns,newcolnames):
df=df.withColumnRename(c,n)
df.withColumn('ID',regexp_extract(df['irr'],r'(\d+),1))
.withColumn('Name',regexp_extract(df['irr'],'your_regex_pattern',0))
.drop(df['irr']).show()
数据来自哪里?没有办法从源头上解决它?是否有任何方法可以修改python中的数据帧以获得预期的输出数据帧。这完全取决于格式。你试过什么,做过什么研究吗?这是编码练习的一部分。我们的任务是清理数据并对其应用一些转换和操作。这真的给了我一个糟糕的开始。我已经添加了'[a-zA-Z\s,]+'
作为我的正则表达式模式。由于数据有额外的逗号,我使用了dff.withColumn('Name',regexp_replace('Name',',',''))
来删除它们。谢谢你,伙计,很高兴能帮上忙。