spark-hdfs(parquet数据处理pyspark)

配置pyspark的pip环境

pip install pyspark==3.2.1 pandas numpy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

Pyspark将文件(Parquet)上传至HDFS

sudo docker exec namenode hdfs dfs -mkdir /input \
&& sudo docker exec namenode hdfs dfs -put /input/data.parquet /input

Pyspark读取HDFS的parquet


from pyspark import SparkContext, SparkConf
from pyspark.sql.session import SparkSession

# 建立sparkSession进行parquet文件读取及分析
spark = SparkSession.builder \
.master("spark://914455781cf3:7077") \
.appName("readParquet") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()

# 上传parquet文件到hdfs中之后,使用pyspark读取数据并分析
df = spark.read.parquet("hdfs://namenode:9000/input/example1.parquet")
# 数据操作
df.first()  # 显示第一条数据,Row格式
df.columns # 列名
df.count() # 数据量,数据条数
df.toPandas() # 从spark的DataFrame格式数据转到Pandas数据结构
df.show() # 直接显示表数据;其中df.show(n) 表示只显示前n行信息
type(df) # 数据显示格式

Pyspark读取S3的parquet


from pyspark.sql import SparkSession, SQLContext
from pyspark.sql import Window

ACCESS_KEY_ID = 'xxxxxx'
SECRET_ACCESS_KEY = 'xxxxxx'
END_POINT = 's3.cn-northwest-1.amazonaws.com.cn'
spark = SparkSession.builder \
.master("spark://107a4abc4ef9:7077") \
.appName("readParquet") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
    
#设置conf的信息
hadoopConf = spark.sparkContext._jsc.hadoopConfiguration()
hadoopConf.set("fs.s3a.endpoint", END_POINT)
hadoopConf.set("fs.s3a.access.key", ACCESS_KEY_ID)
hadoopConf.set("fs.s3a.secret.key", SECRET_ACCESS_KEY)
bucket_name = 'tmpspark'
parquetFile_name = 'osb+0+23139010766.parquet'
bucket_path = f"s3a://{bucket_name}/{parquetFile_name}"
df = spark.read.parquet(bucket_path)
# 数据操作
print("\n")
print("First Row:")
print(df.first())  # 显示第一条数据,Row格式
print("\n")
print("Columns Name:")
print(df.columns) # 列名
print("Counts:")
print(df.count()) # 数据量,数据条数
print("\n")
print("Table:")
df.toPandas() # 从spark的DataFrame格式数据转到Pandas数据结构
df.show(3) # 直接显示表数据;其中df.show(n) 表示只显示前n行信息
print("\n")
print("Data Frame:")
print(type(df)) # 数据显示格式
print("\n")

大厂如何基于spark+机器学习构建千万数据规模上的用户留存模型

https://developer.aliyun.com/article/994977

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值