Spark DataSource Option 参数
Spark DataSource Option 参数
1.parquet
https://spark.apache.org/docs/latest/sql-data-sources-parquet.html
2.orc
https://spark.apache.org/docs/latest/sql-data-sources-orc.html
3.csv
https://docs.databricks.com/spark/latest/data-sources/read-csv.html#supported-options
4.text
| 属性名称 | 默认值 | 含义 |
|---|---|---|
| wholetext | false | 默认情况下,文本文件中的每一行都是生成的DataFrame中的新行。如果为true,则将文件作为单行读取,而不是按"\n"拆分。 |
5.jdbc
http://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
| 属性名称 | 默认值 | 含义 |
|---|---|---|
| url | 要连接的JDBC URL,可以再URL中指定特定于源的连接属性 | |
| dbtable | 应该读取或写入的JDBC表 | |
| query | 将数据读入Spark的查询语句 | |
| driver | “com.mysql.jdbc.Driver” | 用于连接到此URL的JDBC驱动程序的类名 |
| numPartitions | 表读取和写入中可用于并行的最大分区数,同时确定了最大并发的JDBC连接数 | |
| partitionColumn,lowerBound,upperBound | 如果指定了任一选项,则必须指定全部选项。此外,还必须指定numPartitions。partitionColumn必须是表中的数字,日期或时间戳列。注意:lowerBound和upperBound(仅用于决定分区步幅,而不是用于过滤表中的行。因此,表中的所有行都将被分区并返回,这些选项仅用于读操作。) | |
| queryTimeout | 0 | 超时时间(单位:秒),零意味着没有限制 |
| fetchsize | 用于确定每次往返要获取的行数(例如Oracle是10行),可以用于提升JDBC驱动程序的性能。此选项仅适用于读 | |
| batchsize | 1000 | JDBC批处理大小,用于确定每次往返要插入的行数。 这 可以 用于 提升 JDBC 驱动程序的性能。此选项仅适用于写。 |
| isolationLevel | READ_UNCOMMITTED | 事务隔离级别,适用于当前连接。它可以是 NONE,READ_COMMITTED,READ_UNCOMMITTED,REPEATABLE_READ 或 SERIALIZABLE 之一,对应于 JDBC的Connection 对象定义的标准事务隔离级别,默认值为 READ_UNCOMMITTED。此选项仅适用于写。 |
| sessionInitStatement | 在向远程数据库打开每个数据库会话之后,在开始读取数据之前,此选项将执行自定义SQL语句(或PL / SQL块)。 使用它来实现会话初始化,例如:option(“sessionInitStatement”, “”“BEGIN execute immediate ‘alter session set “_serial_direct_read”=true’; END;”"") | |
| truncate | false | 当启用SaveMode.Overwrite时,此选项会导致 Spark 截断现有表,而不是删除并重新创建它。这样更高效,并且防止删除表元数据(例如,索引)。但是,在某些情况下,例如新数据具有不同的 schema 时,它将无法工作。此选项仅适用于写。 |
| cascadeTruncate | false | 如果JDBC数据库(目前为 PostgreSQL和Oracle)启用并支持,则此选项允许执行TRUNCATE TABLE t CASCADE(在PostgreSQL的情况下,仅执行TRUNCATE TABLE t CASCADE以防止无意中截断表)。这将影响其他表,因此应谨慎使用。此选项仅适用于写。 |
| createTableOptions | 此选项允许在创建表时设置特定于数据库的表和分区选项(例如,CREATE TABLE t (name string) ENGINE=InnoDB)。此选项仅适用于写。 | |
| createTableColumnTypes | 创建表时要使用的数据库列数据类型而不是默认值。(例如:name CHAR(64),comments VARCHAR(1024))。指定的类型应该是有效的 spark sql 数据类型。 此选项仅适用于写。 | |
| customSchema | 用于从JDBC连接器读取数据的自定义 schema。例如,id DECIMAL(38, 0), name STRING。您还可以指定部分字段,其他字段使用默认类型映射。 例如,id DECIMAL(38,0)。列名应与JDBC表的相应列名相同。用户可以指定Spark SQL的相应数据类型,而不是使用默认值。 此选项仅适用于读。 | |
| pushDownPredicate | true | 用于 启用或禁用 谓词下推 到 JDBC数据源的选项。默认值为 true,在这种情况下,Spark会尽可能地将过滤器下推到JDBC数据源。否则,如果设置为 false,则不会将过滤器下推到JDBC数据源,此时所有过滤器都将由Spark处理。 |
6.libsvm
https://spark.apache.org/docs/latest/api/java/org/apache/spark/ml/source/libsvm/LibSVMDataSource.html
对数据格式有要求,比如:
1 1:-0.222222 2:0.5 3:-0.762712 4:-0.833333
1 1:-0.555556 2:0.25 3:-0.864407 4:-0.916667
1 1:-0.722222 2:-0.166667 3:-0.864407 4:-0.833333
1 1:-0.722222 2:0.166667 3:-0.694915 4:-0.916667
0 1:0.166667 2:-0.416667 3:0.457627 4:0.5
1 1:-0.833333 3:-0.864407 4:-0.916667
2 1:-1.32455e-07 2:-0.166667 3:0.220339 4:0.0833333
2 1:-1.32455e-07 2:-0.333333 3:0.0169491 4:-4.03573e-08
| 属性名 | 默认值 | 含义 |
|---|---|---|
| numFeatures | 特征数:如果未指定或非正数,则将自动确定特征的数量,这会有额外的性能损耗。 | |
| vectorType | sparse | 特征向量类型:sparse(稀疏)或者 dense(密集)。 |
7.image
https://spark.apache.org/docs/latest/ml-datasource#image-data-source
8.json
https://docs.databricks.com/spark/latest/data-sources/read-json.html
| 属性名称 | 默认值 | 含义 |
|---|---|---|
| primitivesAsString | false | 将所有 原始类型 推断为 字符串类型 |
| prefersDecimal | false | 将所有 浮点类型 推断为 decimal 类型,如果不适合,则 推断为 double 类型 |
| allowComments | false | 忽略JSON记录中的Java / C ++样式注释 |
| allowUnquotedFieldNames | false | 允许不带引号的JSON字段名称 |
| allowSingleQuotes | true | 除双引号外,还允许使用单引号 |
| allowNumericLeadingZeros | false | 允许数字前有零 |
| allowBackslashEscapingAnyCharacter | false | 允许反斜杠转义任何字符 |
| allowUnquotedControlChars | false | 允许JSON字符串包含不带引号的控制字符(值小于32的ASCII字符,包括制表符和换行符)或不包含。 |
| mode | PERMISSIVE | PERMISSIVE:允许在解析过程中处理损坏记录; DROPMALFORMED:忽略整个损坏的记录;FAILFAST:遇到损坏的记录时抛出异常。 |
| columnNameOfCorruptRecord | columnNameOfCorruptRecord(默认值是spark.sql.columnNameOfCorruptRecord中指定的值):允许重命名由PERMISSIVE 模式创建的新字段(存储格式错误的字符串)。这会覆盖spark.sql.columnNameOfCorruptRecord。 | |
| dateFormat | dateFormat(默认yyyy-MM-dd):设置表示日期格式的字符串。自定义日期格式遵循java.text.SimpleDateFormat中的格式。 | |
| timestampFormat | timestampFormat(默认yyyy-MM-dd’T’HH:mm:ss.SSSXXX):设置表示时间戳格式的字符串。 自定义日期格式遵循java.text.SimpleDateFormat中的格式。 | |
| multiLine | false | 解析可能跨越多行的一条记录 |
9.xml
https://github.com/databricks/spark-xml
9.1读选项
| 属性名称 | 默认值 | 含义 |
|---|---|---|
| path | 读文件路径 | |
| rowTag | ROW | 处理的 xml文件 的行标记。 例如,在xml … </ books> 中,rowTag 是 book。 |
| samplingRatio | 1.0 | 推断模式的采样率(0.0 ~ 1)。可能的类型是StructType,ArrayType,StringType,LongType,DoubleType,BooleanType,TimestampType 和 NullType |
| excludeAttribute | false | 是否要排除元素中的属性 |
| nullValue | “null” | 读入空值的值,默认值为字符串 null |
| mode | PERMISSIVE | PERMISSIVE:允许在解析过程中处理损坏记录; DROPMALFORMED:忽略整个损坏的记录;FAILFAST:遇到损坏的记录时抛出异常。 |
| inferSchema | true | 如果为true,则尝试为每个生成的DataFrame列推断适当的类型,如布尔值,数字或日期类型。 如果为false,则所有结果列都是字符串类型。 |
| columnNameOfCorruptRecord | _corrupt_record | 存储格式错误字符串的新字段的名称 |
| attributePrefix | _ | 属性的前缀,以便我们可以区分属性和元素。这将是字段名称的前缀。 |
| valueTag | _VALUE | 当元素中没有子元素的属性时,用于值的标记。 |
| charset | UTF-8 | 编码 |
| ignoreSurroundingSpaces | false | 定义 是否应跳过 正在读取的值 的 周围空格。 |
9.2写选项
| 属性名称 | 默认值 | 含义 |
|---|---|---|
| path | 写文件路径 | |
| rowTag | ROW | 处理的 xml文件 的行标记。 例如,在xml … </ books> 中,rowTag 是 book。 |
| rootTag | ROWS | 处理的xml文件的根标记。 例如,在xml … </ books> 中,rootTag 是 books。 |
| nullValue | “null” | 入空值的值。默认值 为 字符串 null。如果 为 null,则不会 为字段 写入 属性和元素。 |
| attributePrefix | _ | 属性的前缀,以便我们可以区分属性和元素。这将是字段名称的前缀。 |
| valueTag | _VALUE | 当元素中没有子元素的属性时,用于值的标记。 |
| compression | 保存到文件时使用的压缩编解码器。应该是实现 org.apache.hadoop.io.compress.CompressionCodec 的某个类的完全限定名,或者是一个不区分大小写的简写(bzip2,gzip,lz4 和 snappy)。未指定编解码器时,默认为无压缩。 |
10.excel
https://github.com/crealytics/spark-excel
Spark DataSource Option 参数的更多相关文章
- spark通过合理设置spark.default.parallelism参数提高执行效率
spark中有partition的概念(和slice是同一个概念,在spark1.2中官网已经做出了说明),一般每个partition对应一个task.在我的测试过程中,如果没有设置spark.def ...
- Spark开发常用参数
Driver spark.driver.cores driver端分配的核数,默认为1,thriftserver是启动thriftserver服务的机器,资源充足的话可以尽量给多. spark.dri ...
- spark job运行参数优化
http://www.cnblogs.com/LBSer/p/4129481.html 一.问题 使用spark join两张表(5000w*500w)总是出错,报的异常显示是在shuffle阶段. ...
- spark作业提交参数设置(转)
来源:https://www.cnblogs.com/arachis/p/spark_parameters.html 摘要 1.num-executors 2.executor-memory 3.ex ...
- Spark 性能相关参数配置详解-任务调度篇
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...
- Spark 性能相关参数配置详解-压缩与序列化篇
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...
- Spark 性能相关参数配置详解-shuffle篇
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 在Spark的官方文档http://spark.apache.org/docs/latest/configuration. ...
- Spark 性能相关参数配置详解-Storage篇
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...
- Spark远程调试参数
Spark远程调试脚本: #调试Master,在master节点的spark-env.sh中添加SPARK_MASTER_OPTS变量 export SPARK_MASTER_OPTS="- ...
随机推荐
- JVM的艺术-对象创建与内存分配机制深度剖析
JVM的艺术-对象创建与内存分配机制深度剖析 引言 本章将介绍jvm的对象创建与内存分配.彻底带你了解jvm的创建过程以及内存分配的原理和区域,以及包含的内容. 对象的创建 类加载的过程 固定的类加载 ...
- 痞子衡嵌入式:Farewell, 我的2020
-- 题图:苏州大学老校门 2020年的最后一天,痞子衡驱车300多公里从苏州赶回了苏北老家(扬州某边陲小镇),连镇铁路虽然新通车了,解决了苏南苏北多年的铁路不直通问题,但奈何痞子衡老家小镇离最近的火 ...
- three.js 中使用多线程以及性能测试
今天郭先生说一下WebWorker以及WebWorker在three.js中的应用.我们都知道Javascript是单线程的,比如执行js代码的同时UI渲染就会停止,对于多核CPU的点脑,这一点让人难 ...
- 使用 Admission Webhook 机制实现多集群资源配额控制
1 要解决的问题 集群分配给多个用户使用时,需要使用配额以限制用户的资源使用,包括 CPU 核数.内存大小.GPU 卡数等,以防止资源被某些用户耗尽,造成不公平的资源分配. 大多数情况下,集群原生的 ...
- Django中一种常见的setting与账密保存/读取方式
前言 在查看别人Django代码的时候,发现很多的manager文件都是类似于 #!/usr/bin/env python import os import sys if __name__ == '_ ...
- MySQL多版本并发控制——MVCC机制分析
MVCC,即多版本并发控制(Multi-Version Concurrency Control)指的是,通过版本链维护一个数据的多个版本,使得读写操作没有冲突,可保证不同事务读写.写读操作并发执行,提 ...
- 总结下MySql优化。防止数据灾难的发生。
在PHP开发中用到的数据库中MySql是最牛逼的数据库,没有之一--^_^ 相比Sqlite个人最喜欢的特性就是"支持多线程,充分利用 CPU 资源",不像Sqlite那样,动不动 ...
- SAP系统跨平台字符编码转换
SAP系统在进行了夸平台的迁移,可能会遇到操作系统层文件编码不同,导致SAP系统无法识别或者乱码的问题.例如SAP系统从AIX平台迁移到linux平台,SAP应用服务器的编码会发生变化,从4102变化 ...
- 提示框,对话框,路由跳转页面,跑马灯,幻灯片及list组件的应用
目录: 主页面的js业务逻辑层 主页面视图层 主页面css属性设置 跳转页面一的js业务逻辑层 跳转页面一的视图层 跳转页面二的视图层 跳转页面三的js业务逻辑层 跳转页面三的视图层 跳转页面三的cs ...
- codeup 1934 查找元素
题目描述: 输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1. 输入: 测试数据有多组,输入n(1<=n<=200), ...