Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调整Pyspark数据框中CSV文件数据的错误数据_Python_Pyspark_Pyspark Dataframes - Fatal编程技术网

Python 调整Pyspark数据框中CSV文件数据的错误数据

Python 调整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来实

我试图将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
来实现这一点

我的方法是这样的:

#使用不同的分隔符读取,以便使用单个列生成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',',',''))
来删除它们。谢谢你,伙计,很高兴能帮上忙。