SparkSQL读写外部数据源-jext文件和table数据源的读写
object ParquetFileTest {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName("ParquetFileTest")
.getOrCreate()
//1: 将json文件数据转化成parquet文件数据
val df = spark.read.json(s"${BASE_PATH}/people.json")
df.show()
//gzip、lzo、snappy
df.write.option("compression", "snappy").parquet(s"${BASE_PATH}/parquet")
//2: 读取parquet文件
val parquetDF = spark.read.parquet(s"${BASE_PATH}/parquet")
parquetDF.show()
//3: parquet schema merge
//全局设置spark.sql.parquet.mergeSchema = true
df.toDF("age", "first_name").write.parquet(s"${BASE_PATH}/parquet_schema_change")
val changedDF = spark.read.parquet(s"${BASE_PATH}/parquet_schema_change")
changedDF.show()
val schemaMergeDF = spark.read.option("mergeSchema", "true").parquet(s"${BASE_PATH}/parquet",
s"${BASE_PATH}/parquet_schema_change")
schemaMergeDF.show()
spark.stop()
}
}
object OrcFileTest {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName("OrcFileTest")
.getOrCreate()
//1: 将json文件数据转化成orc文件数据
val df = spark.read.json(s"${BASE_PATH}/people.json")
df.show()
df.write.option("compression", "snappy").orc(s"${BASE_PATH}/orc")
val orcFileDF = spark.read.orc(s"${BASE_PATH}/orc")
orcFileDF.show()
spark.stop()
}
}
SparkSQL读写外部数据源-jext文件和table数据源的读写的更多相关文章
- 通过spring抽象路由数据源+MyBatis拦截器实现数据库自动读写分离
前言 之前使用的读写分离的方案是在mybatis中配置两个数据源,然后生成两个不同的SqlSessionTemplate然后手动去识别执行sql语句是操作主库还是从库.如下图所示: 好处是,你可以人为 ...
- 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件
[源码下载] 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件 作者 ...
- 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件
CustomResource ResourceDictionary 加载外部的 ResourceDictionary 文件 示例1.演示“CustomResource”相关知识点Resource/Cu ...
- Android 读写SD卡的文件
今天介绍一下Android 读写SD卡的文件,要读写SD卡上的文件,首先需要判断是否存在SD卡,方法: Environment.getExternalStorageState().equals(Env ...
- spring 配置文件 引入外部的property文件的两种方法
spring 的配置文件 引入外部的property文件的两种方法 <!-- 引入jdbc配置文件 方法一 --> <bean id="propertyConfig ...
- python之文件的读写和文件目录以及文件夹的操作实现代码
这篇文章主要介绍了python之文件的读写和文件目录以及文件夹的操作实现代码,需要的朋友可以参考下 为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用 ...
- 内核驱动程序中如何读写user space的文件,方便调试程序
需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.但是在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() f ...
- Jmeter中使用外部的java文件
感觉在Jmeter中使用外部的Java文件比较方便,语法一样,而且可以直接引用,所以个人觉得这个功能还是蛮重要的,特别是在使用Jmeter的过程中,可能需要结合一定的业务场景进行判断等,那使用Jmet ...
- Golang的文件处理方式-常见的读写姿势
Golang的文件处理方式-常见的读写姿势 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在 Golang 语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄 ...
随机推荐
- vim设定Tab缩进长度
在Linux系统中,vim是一款非常好用的文本编辑器,那么,如何在Linux下的vim编辑器设定Tab的缩进长度呢? Linux系统下,vim编辑器Tab键的默认长度为8个空格,在vim中可以通过修改 ...
- 在ensp上配置RIPv2的认证
原理 实验模拟 实验拓扑 测试连通性 搭建rip网络 查看路由表 R3模拟攻击首先把在自己的的ip通告网段 配置完成后查看一下路由表 可以看到已经非法获取R1R2的网段信息,那么现在我们R3可以向两个 ...
- threading.local和高级
threading.local特点 ①为每个线程开辟空间,让你进行存取值(根据线程ID来固定某个值) ②flask中没有threading.local,但是flask中的上下文管理的思想是借鉴的thr ...
- Windows10下QT5.13.2安装mingw64/MYSQL8.0驱动
开始之前,先将编译器的路径添加到系统环境变量. 我的QT所以sql驱动是在下面这个目录中(大家在自己Qt的安装目录找到对应的文件夹就行,下面的路径也是如此), E:\qt\5.13.2\mingw73 ...
- Wampserver图标黄色解决
本文章是参考了该网址https://jingyan.baidu.com/article/48b37f8d0a02811a6564887b.html 安装了Wampserver后,并对httped.co ...
- 关于使用KubeSphere中的docker配置Harbor仓库http访问docker login登陆报错的解决办法
# 先进入harbor目录中,停止harbor docker-compose stop # 然后修改docker相关文件 # 第一种方式:修改/etc/docker/daemon.json { &qu ...
- C# 单元测试学习笔记
1.什么是单元测试 2.单元测试的好处 (1)协助程序员尽快找到代码中bug的具体位置 (2)能够让程序员对自己的程序更有自信 (3)能够让程序员在提交项目之前就将代码变的更加的强壮 ...
- tf.nn.softmax_cross_entropy_with_logits()函数的使用方法
import tensorflow as tf labels = [[0.2,0.3,0.5], [0.1,0.6,0.3]]logits = [[2,0.5,1], [0.1,1,3]] a=tf. ...
- 原生js 定义分页控件,类似于百度搜索
实现一个类似于百度搜索结果的分页样式,样式可以自定义,接近于原生,少部分Jquery . 1.实现效果截图(默认无任何样式) 2.主要程序代码 define(function (require, e ...
- 缓冲区溢出漏洞 ms04011
DSScan使用 扫描目标主机是否存在ms04011漏洞 getos使用 获取操作系统类型 > getos.exe 192.168.1.101 ------------------------- ...