apache-spark - spark如何从HDFS加载文件以及它与RDD的关系
问题描述
如何从集群中的 HDFS 触发 laod 数据?
块如何转换为 RDD?
假设我有 3 个节点集群,并且我有一个名为 log.txt 的文件,它分为 3 个块。所有 3 个节点每个块都有一个。
spark如何加载log.txt以及如何将其转换为RDD?
解决方案
Spark 与任何 HDFS 客户端没有什么不同。
与namenode联系以获取文件,它返回块的位置,然后HDFS客户端将从datanodes中获取块。
块不会“转换为”RDD,而是 RDD 只是应用于 Hadoop 的元数据,这些HadoopInputSplit
由InputFormat
. RecordReader
RDD 是惰性求值的,因此它们不代表数据的传输或转换
推荐阅读
- django - 在 Django 应用程序中进行单元测试期间缺少默认模型权限
- sapui5 - 为什么日期选择器不能识别错误的格式?
- elasticsearch - ElasticSearch:如何更新索引中的特定值
- javascript - 与 JS 交互越多,表格不会更新值
- html - SVG 缩放并保持其相对于 div 的位置
- android - 错误:程序类型已存在:com.google.android.material.appbar.AppBarLayout$1
- javascript - Angular将多个文件转换为base64字符串
- java - 检查图形是否是循环的
- mysql - 在 Spring 中保存后获取 AutoIncrement 值
- java - 即使在实施 Stackoverflow 答案后也无法解析 .andExpect() 方法