我想将 Pandas 数据帧转换为字符串,以便我可以在正则表达式中使用
输入数据:
SRAVAN
KUMAR
RAKESH
SOHAN
import re
import pandas as pd
file = spark.read.text("hdfs://test.txt")
pands = file.toPandas()
schema: pysark.sql.dataframe.DataFrame
result = re.sub(r"\n","",pands,0,re.MULTILINE)
print(result)
SRAVANKUMAR
RAKESHSOHAN
最佳答案
为此你不需要 Pandas。 Spark 有自己的正则表达式替换功能。
这会将每行中的 \n
替换为空字符串。
默认情况下,spark.read.text
会将文件的每一行读取到一个数据帧行中,因此无论如何您都不能拥有多行字符串值...
from pyspark.sql.functions import col, regexp_replace
df = spark.read.text("hdfs://test.txt")
df = df.select(regexp_replace(col('value'), '\n', ''))
df.show()
要将数据帧转换为连接字符串,请收集数据帧。但对于大型数据集应该避免这种情况。
s = '\n'.join(d['value'] for d in df.collect())
关于python - 在pyspark中将数据帧转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72568347/