使用Spark SQL读取阿里云OSS的数据

读OSS数据

创建一个table,并关联OSS目录路径

sql 复制代码
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语句读取数据了。

sql 复制代码
DESC my_table;
SELECT * FROM my_table limit 50;

写OSS数据

首先创建一个关联OSS目录的database:

sql 复制代码
--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了,如下:

sql 复制代码
use my_db;

create table my_oss_table like my_table;

insert overwrite table my_oss_table
select * from my_table;
相关推荐
编程彩机8 分钟前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
70asunflower1 小时前
阿里云无影云电脑 Docker 使用完全指南
阿里云·docker·云计算
主机哥哥1 小时前
零基础入门:阿里云OpenClaw部署全流程详解(图文版)
阿里云·云计算
wangqiaowq2 小时前
MSSQLSERVER 和 SQLEXPRESS 是 SQL Server 中两种不同类型的实例名称
sql
Amarantine、沐风倩✨5 小时前
一次线上性能事故的处理复盘:从 SQL 到扩容的工程化思路
java·数据库·sql·oracle
ApacheSeaTunnel5 小时前
Apache SeaTunnel Zeta、Flink、Spark 怎么选?底层原理 + 实战对比一次讲透
大数据·flink·spark·开源·数据集成·seatunnel·数据同步
l1t6 小时前
用SQL执行累计值汇总的几种方法
数据库·sql·postgresql·duckdb
DarkAthena7 小时前
【GaussDB】排查创建索引后查询数据行数发生变化的问题
数据库·sql·gaussdb
AlenTech8 小时前
SQL 中的 WITH ... AS ...
数据库·sql
l1t8 小时前
利用多种方法实现SQL行列转换
数据库·sql·postgresql·kingbase·duckdb