在数据工程领域,湖仓(Lake House)架构正迅速成为数据存储和处理的主流选择。AWS推出的S3 Tables旨在增强S3的功能,使其更适合作为湖仓的一部分。然而,实际操作中,AWS S3 Tables的集成和使用仍存在一些挑战。本文将详细介绍如何使用PySpark操作AWS S3 Tables实现数据的修改与查询,并结合实际操作经验,探讨其优缺点。
一、AWS S3 Tables 简介
AWS S3 Tables是一种在S3存储桶(Bucket)上创建的表结构,旨在与AWS的分析服务(如Glue、Athena、EMR等)无缝集成。S3 Tables基于Apache Iceberg,实现了高效的表级管理和查询优化。然而,当前S3 Tables的生态系统主要支持Apache Spark,对于其他开源查询引擎(如Polars、Daft、DuckDB等)的支持尚不完善,这限制了其在多样化数据处理工具中的应用。
二、环境配置
在使用PySpark操作AWS S3 Tables之前,需要配置必要的环境。这包括安装和配置Spark与Hadoop,以及设置AWS凭证和相关依赖。
1. 安装Java
Spark依赖于Java,因此需要确保Java已正确安装。
# 检查Java版本
java -version
# 如果未安装,安装OpenJDK 17
sudo apt update
sudo apt install openjdk-17-jdk
2. 安装Apache Spark
下载并安装适用于您的操作系统的Apache Spark。
# 下载Spark
wget https://downloads.apache.org/spark/spark-3.4.0/spark-3.4.0-bin-hadoop3.2.tgz
# 解压缩
tar -xzf spark-3.4.0-bin-hadoop3.2.tgz
# 移动到/opt目录
sudo mv spark-3.4.0-bin-hadoop3.2 /opt/spark
# 设置环境变量
echo 'export SPARK_HOME=/opt/spark' >> ~/.bashrc
echo 'export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin' >> ~/.bashrc
source ~/.bashrc
3. 安装和配置Hadoop
Spark需要Hadoop来与S3进行交互。安装并配置Hadoop客户端。
# 下载Hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
# 解压缩
tar -xzf hadoop-3.3.4.tar.gz
# 移动到/opt目录
sudo mv hadoop-3.3.4 /opt/hadoop
# 设置环境变量
echo 'export HADOOP_HOME=/opt/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc
4. 配置AWS凭证
为了让Spark能够访问AWS S3,需要配置AWS凭证。可以通过以下几种方式配置:
-
配置文件:在
~/.aws/credentials中添加AWS访问密钥。[default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEY -
环境变量:
export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY


8016

被折叠的 条评论
为什么被折叠?



