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 并行写