from pyspark.sql import SparkSession
import pandas as pd
# 创建一个SparkSession
spark = SparkSession.builder.appName("ReadHDFSFiles").getOrCreate()
# 读取HDFS上的CSV文件(假设它们是CSV格式的)
# 注意:这里使用了通配符'*'来匹配所有文件
df = spark.read.csv("hdfs://hadoop102:8020/flume/20240509/18/logs-.1715250090277", header=True, inferSchema=True)
# 将Spark DataFrame转换为pandas DataFrame(注意:只适用于小数据集)
pdf = df.toPandas()
# 现在你可以使用pandas进行清洗了
# 例如,删除包含NaN的行
pdf = pdf.dropna()
# 或者使用numpy的函数进行某些计算
import numpy as np
pdf['some_column'] = np.where(pdf['some_column'] > 10, 'high', 'low')
# ... 其他pandas和numpy的清洗操作 ...
# 如果你需要将清洗后的数据写回HDFS(例如为Parquet格式),你可以这样做:
df.write.csv("hdfs://hadoop102:8020/cleaned_data/", sep="\t", header=True, mode="overwrite")
02-10
1871
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交