From 0bb47509546607ea9422a70d2ff3d117366fb13d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com> Date: Tue, 4 Jun 2019 17:25:33 +0800 Subject: [PATCH] =?UTF-8?q?Spark=20SQL=E5=A4=96=E9=83=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/SparkSQL外部数据源.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/notes/SparkSQL外部数据源.md b/notes/SparkSQL外部数据源.md index fe1d333..4f6c34a 100644 --- a/notes/SparkSQL外部数据源.md +++ b/notes/SparkSQL外部数据源.md @@ -82,8 +82,7 @@ spark.read.format("csv") ```scala // 格式 -DataFrameWriter.format(...).option(...).partitionBy(...).bucketBy(...).sortBy( -...).save() +DataFrameWriter.format(...).option(...).partitionBy(...).bucketBy(...).sortBy(...).save() //示例 dataframe.write.format("csv") @@ -212,8 +211,8 @@ Parquet文件有着自己的存储规则,因此其可选配置项比较少, | 读写操作 | 配置项 | 可选值 | 默认值 | 描述 | | -------- | -------------------- | ------------------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------ | -| 读 | compression or codec | None,
uncompressed,
bzip2,
deflate, gzip,
lz4, or snappy | None | 压缩文件格式 | -| Read | mergeSchema | true, false | 取决于配置项`spark.sql.parquet.mergeSchema` | 当为真时,Parquet数据源将从所有数据文件收集的Schema合并在一起,否则将从摘要文件中选择Schema,如果没有可用的摘要文件,则从随机数据文件中选择Schema。 | +| Write | compression or codec | None,
uncompressed,
bzip2,
deflate, gzip,
lz4, or snappy | None | 压缩文件格式 | +| Read | mergeSchema | true, false | 取决于配置项`spark.sql.parquet.mergeSchema` | 当为真时,Parquet数据源将所有数据文件收集的Schema合并在一起,否则将从摘要文件中选择Schema,如果没有可用的摘要文件,则从随机数据文件中选择Schema。 | > 更多可选配置可以参阅官方文档:https://spark.apache.org/docs/latest/sql-data-sources-parquet.html @@ -239,9 +238,9 @@ csvFile.write.format("orc").mode("overwrite").save("/tmp/spark/orc/dept") ## 六、SQL Databases -spark同样支持与传统的关系型数据库进行数据读写。但是Spark程序默认是没有提供数据库驱动的,所以在使用前需要将对应的数据库驱动上传到安装目录下的`jars`目录中。下面示例使用的是Mysql数据库,使用前需要将对应的`mysql-connector-java-x.x.x.jar`上传到jars目录下。 +Spark同样支持与传统的关系型数据库进行数据读写。但是Spark程序默认是没有提供数据库驱动的,所以在使用前需要将对应的数据库驱动上传到安装目录下的`jars`目录中。下面示例使用的是Mysql数据库,使用前需要将对应的`mysql-connector-java-x.x.x.jar`上传到`jars`目录下。 -> 为方便大家测试,我在本仓库的[resources](https://github.com/heibaiying/BigData-Notes/tree/master/resources)目录下上传了mysql-connector-java-5.1.47.jar +> MySQL JAR 可以从本仓库的[resources](https://github.com/heibaiying/BigData-Notes/tree/master/resources)目录进行下载。 ### 6.1 读取数据 @@ -391,7 +390,7 @@ df.write.text("/tmp/spark/txt/dept") ### 8.1 并行读 -多个executors不能同时读取同一个文件,但它们可以同时读取不同的文件。这意味着当您从一个包含多个文件的文件夹中读取数据时,这些文件中的每一个都将成为DataFrame中的一个分区,并由可用的executors并行读取。 +多个Executors不能同时读取同一个文件,但它们可以同时读取不同的文件。这意味着当您从一个包含多个文件的文件夹中读取数据时,这些文件中的每一个都将成为DataFrame中的一个分区,并由可用的Executors并行读取。 ### 8.2 并行写