Spark流式读取文件数据

流式读取文件数据

在这里插入图片描述
在这里插入图片描述

from pyspark.sql import SparkSession

ss = SparkSession.builder.getOrCreate()

# todo 注意1:流式读取目录下的文件 --》一定一定要是目录,不是具体的文件,
#       目录下产生新文件会进行读取
# todo 注意点2:csv和JSON必须指定schema   以前的JSON文件是不要指定

df_csv = ss.readStream.csv(‘hdfs://node1:8020/目录’)
df_json = ss.readStream.json(‘hdfs://node1:8020/目录’)

# todo 每个options都不一样

options2 ={
‘host’:‘192.168.88.100’,
‘port’:9999
}

options={
# 每个批次读取1个文件
‘maxFilesPerTrigger’:1,
‘latestFirst’:‘true’
}

df_json.writeStream.start(format=‘console’,outputMode=‘complete’).awaitTermination()

流式读取文件的注意点

删除已经处理的文件(文件一)
你修改了文件一的内容,不修改文件名,你再次上传会发现它不去读取
但是你不修改文件内容,修改文件名,你再上传会发现它还会去读取

场景:某天你上传一个文件,发现它不做任何读取和处理,你需要考虑,这个文件名以前是否处理过了。

文件的读取方式在实际开发中用的比较少,每生产一条数据,就要生成一个文件(单单正对流处理
但是,如果将多条数据收集之后同一写入文件,那就变成了和批处理方式一样的开发

文件读取数据的参数指定

在这里插入图片描述

当spark读不过来的时候,可以调整latestFirst,设置为True就会处理最新的文件

true时,就会将所有相同文件名认定为同一个文件,不管全部路径是否相同,这就涉及到相同的路径不会连续处理 上面刚说的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/418256.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dicom标准里的 RescaleType

DCM_RescaleType 0x0028, 0x1054 这个 HU 和 us 是代表什么含义 之前去一个公司面试,问我, MR里灰阶是什么 CT里才叫CT值, MR里叫什么呢? DICOMLookup

linux perf工具使用

参考文章Linux性能调优之perf使用方法_perf交叉编译-CSDN博客 perf是一款Linux性能分析工具。比如打流性能优化的时候,就能够看到是哪些函数消耗的cpu高 那么linux如何编译perf工具呢? perf工具编译 进入perf目录下linux-3.16/tools/perf make ARCH…

【日常聊聊】自然语言处理的发展

🍎个人博客:个人主页 🏆个人专栏: 日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 技术进步 应用场景 挑战与前景 伦理和社会影响 实践经验 结语 我的其他博客 前言 自然语言处理(NLP&#xf…

【Rust学习】安装Rust环境

本笔记为了记录学习Rust过程,内容如有错误请大佬指教 使用IDE:vs code 参考教程:菜鸟教程链接: 菜鸟教程链接: Rust学习 Rust入门安装Rust编译环境Rust 编译工具 构建Rust 工程目录 Rust入门 安装Rust编译环境 因为我已经安装过VSCode了&am…

使用多GPU训练

目录 一、常见的多GPU训练方法 1、问题拆分 2、数据并行 二、代码实现 1、实现ResNet-18网络 2、网络初始化 3、训练 三、总结 一、常见的多GPU训练方法 1、问题拆分 假设我们有多个GPU。我们希望以一种方式对训练进行拆分,为实现良好的加速比,还…

TS报错:未使用的局部变量

1.问题 2,解决 2.1可以根据快速修复,进行修改 2.2也可以去到TS的配置文件,找到如下,改成false即可 // 报告未使用的局部变量 "noUnusedLocals": true, // 报告未使用的函数参数 "noUnusedParameters": true,…

C++——vector的使用及其模拟实现

vector的使用及其模拟实现 文章目录 vector的使用及其模拟实现1. vector的使用1.1 构造函数construct1.2 获取当前存储的数据个数size()和最大容量capacity()1.3 访问1.3.1 operator[]运算符重载1.3.2 迭代器访问1.3.3 范围for 1.4 容量相关reserve()和resize()1.5 增&#xff…

数学建模常见算法的通俗理解(1)

目录 1.层次分析法(结合某些属性及个人倾向,做出某种决定) 1.1 粗浅理解 1.2 算法过程 1.2.1 构造判断矩阵 1.2.2 计算权重向量 1.2.3 计算最大特征根 1.2.4 计算C.I.值 1.2.5 求解C.R.值 1.2.6 判断一致性 1.2.7 计算总得分 2 神经…

postman自动化接口测试

背景描述 有一个项目要使用postman进行接口测试,接口所需参数有: appid: 应用标识;sign:请求签名,需要使用HMACSHA1加密算法计算,签名串是:{appid}${url}${stamp};stamp&#xff1…

AcWing 102:最佳牛围栏 ← 二分+前缀和

【题目来源】https://www.acwing.com/problem/content/104/【题目描述】 农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于 1 头,也不会超过 2000 头。 约翰希望用围栏将一部分连续的田地围起来,并使得围起…

JNI实例-Java和C互调

目录 1. 背景2. Java调C-Demo代码JNI.javaMainActivity.javaAndroid.mkApplication.mkcom_stone_javacallc_JNI.hjavacallc.cbuild.gradle 3. C调Java-Demo代码3.1 查看JNI代码方法签名的方法3.2 代码结构3.3 JNI.class3.4 MainActivity.class3.5 Android.mk3.6 Application.mk…

把Mybatis Generator生成的代码加上想要的注释

1 前言 在日常开发工作中,我们经常用Mybatis Generator根据表结构生成对应的实体类和Mapper文件。但是Mybatis Generator默认生成的代码中,注释并不是我们想要的,所以一般在Generator配置文件中,会设置不自动生成注释。带来的问题…