【spark基础】之client模式下--conf读取外部文件
P1 需求描述
在做spark程序开发的时候,我们经常会遇到需要从外部文件读入数据,进而在程序中进行解析、处理,比如以下场景:
- 1)读入要处理的数据;
- 2)为了不写死代码,将需要的数据以K、V的形式保存在文件中;
- 3)同样是为了代码的可维护性,将sql语句保存在外部sql文件。
P2 环境介绍
本文以spark on yarn下的client为例进行说明
P3 代码说明
1、client模式下,通过submit的--conf命令传入外部文件路径,路径默认是HDFS命令,当然,也可以通过file:///E\\files\\xx.sql命令指定本地目录,spark-submit命令如下:
spark-submit
--master yarn \
--class cn.lion.sqltest.ReadSqlTest \
--deploy-mode client \
--conf spark.file.fileName=/data/input/sqlTest.sql \
/opt/jars/myspark-1.0-SNAPSHOT.jar
--conf spark.file.fileName该名称可以自定义,主要由spark开头即可,如spark.xx.xx.xx
2、代码部分
def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("ReadSqlTest")
// .master("local[*]").getOrCreate()spark.sparkContext.setLogLevel("WARN")val fileName = spark.conf.get("spark.file.fileName")val sqlData: Dataset[String] = spark.read.textFile(fileName)val lineArray: Array[String] = sqlData.collect()val sb = new StringBuffer()for (elem <- lineArray) {sb.append(elem + "\n")}println(sb.toString)spark.stop()}
3、说明
示例代码中获取的是sql文件,内部是sql语句,本例是直接将sql语句打印,开发的时候可以根据需要自行调整。
P4 执行过程及结果
1、提交命令
2、client
3、打印结果
P5 本文备注
本次只介绍了client模式下获取外部文件的方法,而cluster模式略有不同,driver可能会在任意一台有资源的机器上启动,需要通过分布式文件系统获取文件,后续会进行探讨,敬请期待......
【spark基础】之client模式下--conf读取外部文件相关推荐
- spark on yarn client模式下不需要上传程序jar包到hdfs
- 乐鑫esp8266学习rtos3.0笔记:esp产品 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。(附带demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...
- 慕容小匹夫 Unity3D移动平台动态读取外部文件全解析
Unity3D移动平台动态读取外部文件全解析 c#语言规范 阅读目录 前言: 假如我想在editor里动态读取文件 移动平台的资源路径问题 移动平台读取外部文件的方法 补充: 回到目录 前言: 一直有 ...
- 匹夫细说Unity3D(一)——移动平台动态读取外部文件全解析
前言: 一直有个想法,就是把工作中遇到的坑通过自己的深挖总结成一套相同 问题 的解决方案供各位同行拍砖探讨.眼瞅着2015年第一个工作日就要来到了,小匹夫也休息的差不多了,寻思着也该写点东西活动活动大 ...
- 浏览器兼容模式下,上传文件问题
在浏览器的兼容模式下,页面没有上传图片的时候,file != null && file.Count > 0 && file[""] != nu ...
- 【Linux/Ubuntu】linux环境下如何读取doc文件(不是docx文件!!!)
首先下载:antiword点击此单词,即可进行下载 http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz tar -zxvf antiword ...
- java读取外部文件_(转)JAVA读取外部资源的方法
在java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下. 1.从当前的工作目录中读取: try{ BufferedRe ...
- websohere 替换单独文件_postman教程-16-如何读取外部文件实现数据参数化
测试过程中,常会遇到一个接口要验证很多的测试数据,而要输入参数和验证参数又几乎是一样的.这时我们首先就会想到数据参数化,在postman中也提供了数据参数化功能,它需要把数据单独的存放在一个文件中管理 ...
- [高通平台]9008模式下如何读取MSMID和serial_number
1.电脑上安装QPST,默认路径为:C:\Program Files (x86)\Qualcomm\QPST\bin 2.打开Windows的命令行窗口,开始->cmd->回车 3.在命令 ...
最新文章
- node.js安装模式 的区别_如何使用nodejs写一个接口
- 四种方式下创建线程启动的区别
- centos安装ES(elasticsearch)
- AGC005D - ~K Perm Counting(组合数学,背包,dp)
- mysql数据库版本不同_mysql数据库版本不同所引起的问题
- 使用OpenXml打开word文档中嵌入的另一个文档
- [Coding Style] CSS coding style
- centos 7首次登录和常见命令
- UVA10025 The ? 1 ? 2 ? ... ? n = k problem【数学规律】
- 【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
- HDFS常用命令(总结)
- 计算机系统的性能能被准确测量吗,信息技术 基于计算机的软件系统的性能测量与评级...
- sl400上面安装ubuntu
- Python实训day08am【网络爬虫selenium、图像处理入门】
- MQL5:zig-zag 指标
- 《C++ Primer Plus》学习笔记-string类和标准模板库
- Vultr 教程目录
- HDFS依旧是存储的王者
- 基于MQTT的数据采集系统
- 【拓扑 字符串还原 + 线段树维护】奇洛金卡达(father)