python - 在pyspark中将数据帧转换为字符串

标签 python pandas dataframe apache-spark pyspark

我想将 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/

相关文章:

Python:如何获取调用函数的文件的绝对路径?

python - 代码创建生成器对象,但我想要一个列表

python - 使用计数将条件排除应用于 Pandas DataFrame

python - 如何将具有值的二级类别列转换为多列

python - 为什么需要 Python 来安装 Cassandra

python - 如何解析pandas中不规则的日期格式?

python - 使用 Panda 在 Python 中根据名称查找值之间的关系

python - 计算表中每 x 行的平均值并创建新表

python - 如何为机器学习有意义地替换 Nan 值

python - append DataFrame 时为 "data type not understood"