Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark-如何为RDD中的大量列优化行对象_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark Spark-如何为RDD中的大量列优化行对象

Apache spark Spark-如何为RDD中的大量列优化行对象,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我正在使用spark将固定长度的文件转换为csv val recs = rdd.map(line => { convert_INPUT(line.getBytes()) } def convert_INPUT(record:Array[Byte] )= { val COL_1 = record.slice(0,0+16) val COL_2 = record.slice(16,16+1) val COL_3 = record

我正在使用spark将固定长度的文件转换为csv

   val recs  = rdd.map(line => {

      convert_INPUT(line.getBytes())

    }


def convert_INPUT(record:Array[Byte] )=
  {

    val COL_1 = record.slice(0,0+16)
    val COL_2 = record.slice(16,16+1)
    val COL_3 = record.slice(17,17+3)
    val COL_ = record.slice(20,20+1)
    . . . . 
    . . . . 
    . . . . 
    val COL_1000 = record.slice(5200,5200+8)

    Row(COL_1,COl_2,COL_3......COL_1000)
}

recs.saveAsTextFile(outfile)
我有一个RDD,行对象有1000多列。。其中大多数是字符串和BigDecimal数据类型。行对象大小约为5K。对于1GB大小的输入文件,该行大小是否足以导致性能问题


我注意到1GB文件需要将近50分钟来处理。。而类似的RDD具有较少的列数(在数据处理中,拥有1000多列并不是常见的用例。我们有一个少于200列的数据模型,并且在处理它们时遇到问题。我想你需要澄清为什么有1000多列是字符串和BigDecimal?我还没有投票表决这个问题,但可以理解为什么得到-1。@Iraj Hedayati,这是一种业务场景-hist关于一个客户交易的各种金额字段的12个月的历史…@Iraj Hedayati..您是如何在项目中解决这些问题的。一般来说,到目前为止,您显示的代码没有表明与已知的Spark SQL问题有任何关系。因此,它表明问题实际上是解析代码。我强烈建议运行
convert\u INPUT
与您最喜欢的探查器隔离,以确定哪些元素是瓶颈。问题的范围不是一个问题就能回答的!我的意见是您需要一些专家来重新评估情况。您需要全面了解源数据、源模式、转换、编写、Spark工作评估等!因此rry,我在这里帮不上什么忙了。拥有1000多列不是数据处理中的常见用例。我们有一个不到200列的数据模型,并且在处理它们时遇到问题。我想你需要澄清为什么字符串和BigDecimal中有1000多列?我没有投票表决这个问题,但可以理解为什么得到-1。@Iraj Hedayati,这是一种业务场景-一个客户交易的各种金额字段的12个月历史…@Iraj Hedayati..您是如何在项目中解决这些问题的。一般来说,到目前为止,您展示的代码没有表明与已知的Spark SQL问题有任何关系。因此,它表明问题实际上是解析代码。我强烈建议gest与您喜爱的探查器隔离运行
convert\u INPUT
,以确定哪些元素是瓶颈。问题的范围不是一个问题就能回答的!我的意见是,您需要一些专家来重新评估情况。您需要全面了解源数据、源架构、转换等它,火花工作评估等等!对不起,我在这里帮不了什么忙了。
19/02/19 09:56:53 INFO rpc.b: Summary of connection to localhost:50505: RpcStats [name=localhost:50505, lifetimeStats=PeriodicStats [startTimeMillis=1550584572436, numMessages=0, numErrors=730, sumServiceTimeNanos=0, minNanos=2147483647, maxNanos=-2147483648, avg=0, adj=0], periodicStats=PeriodicStats [startTimeMillis=1550584572436, numMessages=0, numErrors=730, sumServiceTimeNanos=0, minNanos=2147483647, maxNanos=-2147483648, avg=0, adj=0], jsonSummaryStats=PeriodicStats [startTimeMillis=1550584572436, numMessages=0, numErrors=730, sumServiceTimeNanos=0, minNanos=2147483647, maxNanos=-2147483648, avg=0, adj=0], runningAverageMillis=0]
19/02/19 10:23:49 INFO rpc.b: Summary of connection to localhost:50505: RpcStats [name=localhost:50505, lifetimeStats=PeriodicStats [startTimeMillis=1550589540572, numMessages=0, numErrors=59, sumServiceTimeNanos=0, minNanos=2147483647, maxNanos=-2147483648, avg=0, adj=0], periodicStats=PeriodicStats [startTimeMillis=1550589540572, numMessages=0, numErrors=59, sumServiceTimeNanos=0, minNanos=2147483647, maxNanos=-2147483648, avg=0, adj=0], jsonSummaryStats=PeriodicStats [startTimeMillis=1550589540572, numMessages=0, numErrors=59, sumServiceTimeNanos=0, minNanos=2147483647, maxNanos=-2147483648, avg=0, adj=0], runningAverageMillis=0]