spark RDD操作问题请教

问题描述

在处理一个日志文件的时候,我要对RDD取到指定行列的字符该有什么更高效的操作么?我的处理方法是:rdd.collect(转化为一个Array形式,然后进行操作)

解决方案

解决方案二:
对rdd进行map操作,对每一行调用split分割再取指定列
解决方案三:
试试用SparkSQL。把结构化数据文件导入为DataFrame,然后像操作数据库一样操作文件数据,包括filter,group,agg等
解决方案四:
rdd.flatMap()

时间: 2024-11-18 11:59:11

spark RDD操作问题请教的相关文章

Apache Spark机器学习.1.5 Spark RDD和DataFrame

1.5 Spark RDD和DataFrame 本节关注数据以及Spark如何表示和组织数据.我们将介绍Spark RDD和DataFrame技术. 通过本节的学习,读者将掌握Spark的两个关键概念:RDD和DataFrame,并将它们应用于机器学习项目. 1.5.1 Spark RDD Spark主要以一种分布式项集合的形式进行数据抽象,称之为弹性分布式数据集(Resilient Distributed Dataset,RDD).RDD是Spark的关键创新,使其比其他框架计算更加快速和高效

spark求平均-关于spark RDD求平均的问题

问题描述 关于spark RDD求平均的问题 hi, 假设我有一个spark RDD里面记录的是(时段,分数,次数) 我现在想求:每个时段的平均分数,即:同一个时段下,总分数 / 总次数 不知有什么好方法没有,因为我发现无论是action操作也好,转换成其他Rdd也好, 总没有满意方法,只能分成两个rdd然后关联处理 求大侠帮忙,谢谢 解决方案 先转化为pairrdd,以时段为键,分数次数为值,然后以键aggregate聚合,统计每个键下的值就行了 解决方案二: spark RDD countA

编程-对Spark RDD中的数据进行处理

问题描述 对Spark RDD中的数据进行处理 10C Spark新手.现在在程序中生成了一个VertexRDD[(StringString)].其中的值是如下这种形式的:(3477267 6106 7716 8221 18603 19717 28189)(263118589 18595 25725 26023 26026 27866)(1096918591 25949 25956 26041)(102189320 19950 20493 26031)(586018583 18595 25725

c#-C#如何获取计算器按钮1的句柄,并进行点击操作,请教一下 谢谢

问题描述 C#如何获取计算器按钮1的句柄,并进行点击操作,请教一下 谢谢 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Diagnostics; using System.Threading.Tasks; using System.Threading; namespace

spark rdd调用saveToES报错,如何解决?

问题描述 15/05/1511:45:21INFOTaskSetManager:Startingtask0.0instage1.0(TID1,localhost,ANY,1327bytes)15/05/1511:45:21INFOExecutor:Runningtask0.0instage1.0(TID1)15/05/1511:45:21INFOHadoopRDD:Inputsplit:hdfs://192.168.105.226:9000/LesterDemoTest/Data/draft/p

【Spark Summit East 2017】使用Spark RDD构建用户应用

本讲义出自Tejas Patil在Spark Summit East 2017上的演讲,主要介绍了与SQL类的Hive相比,使用Spark RDD API开发用户应用的几个优点,并介绍了如何进行数据分布,避免数据倾斜,如何优化特定于应用程序的优化以及建立可靠的数据管道,为了说明以上的优点,Tejas Patil在演讲中展示了原本基于Hive的经过重新设计基于Spark的大规模复杂语言训练模型管道.

Spark RDD flatmap 性能慢,求助

问题描述 在使用RDD的flatmap函数时,如果flatmap函数中返回的数组对象很多,比如几十上百,会导致Spark运行特别慢,示例代码:valrdd2=sc.textFile(strInputFilePath).flatMap(line=>{vargrids=newArrayBuffer[Tuple2[Tuple2[Int,Int],Double]]()valvalues=line.split(",")if(values.length>3){try{valbr=bro

[Spark经验一]Spark RDD计算使用的函数里尽量不要使用全局变量

     比如RDD里的计算调用了别的组件类里的方法(比如hbase里的put方法),那么序列化时,会将该方法所属的对象的所有变量都序列化的,可能有些根本没有实现序列化导致直接报错.也就是spark的api没有做到用户无感知,在使用一些全局方法时还需自己控制.简单点的做法就是:能定义在计算函数内的方法就定义在里面.

关于合并用python导入spark,RDD中的CSV数据的问题

问题描述 #数据说明:#Stage1_train_label.CSV400X7(400行7列),无用数据只有第一列的序列号,#Stage1_train_feature.CSV400X73(400行73列),无用数据第一列是序列号#将RDD元素转换成float型函数defconverttofloat(s):l=(float(i)foriins)returnl#读取数据sc.textFile并去掉label.feature第一列无用数据Data_train_label=sc.textFile(r'S