使用Spark SQL读取阿里云OSS的数据
读OSS数据
创建一个table,并关联OSS目录路径
CREATE TABLE my_table
USING parquet
OPTIONS (
path 'oss://my_bucket/my_data_dir/dt=20230904', -- 关联OSS路径
header 'true', -- 如果Parquet文件包含列名的头部信息,则设置为'true',否则设置为'false'
inferSchema 'true' -- 自动推断Parquet文件的模式
);
如果数据文件是Parquet
格式的,可以自动推断出表的schema,很方便。
这样就可以使用sql语句读取数据了。
DESC my_table;
SELECT * FROM my_table limit 50;
写OSS数据
首先创建一个关联OSS目录的database
:
--drop database if exists keepdb CASCADE; -- 注意这个drop操作会删除OSS上对应目录下的数据,谨慎!!!
create database if not exists my_db location 'oss://my_bucket.oss-cn-beijing-internal.aliyuncs.com/my-data-dir';
现在就可以通过sql写入数据到OSS了,如下:
use my_db;
create table my_oss_table like my_table;
insert overwrite table my_oss_table
select * from my_table;