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读取外部文件相关推荐

  1. spark on yarn client模式下不需要上传程序jar包到hdfs

  2. 乐鑫esp8266学习rtos3.0笔记:esp产品 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  3. 慕容小匹夫 Unity3D移动平台动态读取外部文件全解析

    Unity3D移动平台动态读取外部文件全解析 c#语言规范 阅读目录 前言: 假如我想在editor里动态读取文件 移动平台的资源路径问题 移动平台读取外部文件的方法 补充: 回到目录 前言: 一直有 ...

  4. 匹夫细说Unity3D(一)——移动平台动态读取外部文件全解析

    前言: 一直有个想法,就是把工作中遇到的坑通过自己的深挖总结成一套相同 问题 的解决方案供各位同行拍砖探讨.眼瞅着2015年第一个工作日就要来到了,小匹夫也休息的差不多了,寻思着也该写点东西活动活动大 ...

  5. 浏览器兼容模式下,上传文件问题

    在浏览器的兼容模式下,页面没有上传图片的时候,file != null && file.Count > 0 && file[""] != nu ...

  6. 【Linux/Ubuntu】linux环境下如何读取doc文件(不是docx文件!!!)

    首先下载:antiword点击此单词,即可进行下载 http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz tar -zxvf antiword ...

  7. java读取外部文件_(转)JAVA读取外部资源的方法

    在java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下. 1.从当前的工作目录中读取: try{ BufferedRe ...

  8. websohere 替换单独文件_postman教程-16-如何读取外部文件实现数据参数化

    测试过程中,常会遇到一个接口要验证很多的测试数据,而要输入参数和验证参数又几乎是一样的.这时我们首先就会想到数据参数化,在postman中也提供了数据参数化功能,它需要把数据单独的存放在一个文件中管理 ...

  9. [高通平台]9008模式下如何读取MSMID和serial_number

    1.电脑上安装QPST,默认路径为:C:\Program Files (x86)\Qualcomm\QPST\bin 2.打开Windows的命令行窗口,开始->cmd->回车 3.在命令 ...

最新文章

  1. node.js安装模式 的区别_如何使用nodejs写一个接口
  2. 四种方式下创建线程启动的区别
  3. centos安装ES(elasticsearch)
  4. AGC005D - ~K Perm Counting(组合数学,背包,dp)
  5. mysql数据库版本不同_mysql数据库版本不同所引起的问题
  6. 使用OpenXml打开word文档中嵌入的另一个文档
  7. [Coding Style] CSS coding style
  8. centos 7首次登录和常见命令
  9. UVA10025 The ? 1 ? 2 ? ... ? n = k problem【数学规律】
  10. 【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
  11. HDFS常用命令(总结)
  12. 计算机系统的性能能被准确测量吗,信息技术 基于计算机的软件系统的性能测量与评级...
  13. sl400上面安装ubuntu
  14. Python实训day08am【网络爬虫selenium、图像处理入门】
  15. MQL5:zig-zag 指标
  16. 《C++ Primer Plus》学习笔记-string类和标准模板库
  17. Vultr 教程目录
  18. HDFS依旧是存储的王者
  19. 基于MQTT的数据采集系统
  20. 【拓扑 字符串还原 + 线段树维护】奇洛金卡达(father)

热门文章

  1. Typora中的emoji图标标签
  2. 数据质量测试:测试数据有效性和准确性的方法
  3. Luma推出分布式路由器,哪里有WIFI死角放哪里
  4. Asciidoctor基础语法
  5. 加载天地图服务出现空吧图片类似404图片加载失败的效果
  6. 智能语音计算器(四)
  7. 问题:vscode 中用matplotlib 绘图时无法弹窗,不显示图像
  8. 【ssh连接】解决网络突然断线进程执行中止问题
  9. Paint 常用方法记录 +
  10. 3D灯光教程仅需三个步骤,用ThingJS体验极速开发!