小编Neh*_*eha的帖子

如何在spark中对每个执行程序执行一次操作

我有一个存储在S3中的weka模型,大小约为400MB.现在,我有一些记录,我想在其中运行模型并执行预测.

为了进行预测,我试过的是,

  1. 在驱动程序上下载并加载模型作为静态对象,将其广播给所有执行程序.对预测RDD执行映射操作.---->不工作,如在Weka中执行预测,需要修改模型对象,并且广播需要只读副本.

  2. 在驱动程序上下载并加载模型作为静态对象,并在每个映射操作中将其发送到执行程序.----->工作(效率不高,如在每个地图操作中,我传递400MB对象)

  3. 在驱动程序上下载模型并将其加载到每个执行程序上并将其缓存在那里.(不知道该怎么做)

有人知道如何在每个执行程序上加载模型一次并将其缓存,以便其他记录我不再加载它?

scala partitioning weka apache-spark

26
推荐指数
1
解决办法
6991
查看次数

在spark中执行多个DataFrame的连接

我有3个不同进程生成的3dataframes.每个数据框都具有相同名称的列.我的数据框看起来像这样

id   val1    val2       val3    val4
 1    null   null       null    null
 2    A2      A21       A31      A41

id   val1      val2       val3      val4
 1    B1        B21        B31       B41
 2    null      null       null      null

id   val1     val2       val3    val4
 1    C1       C2        C3       C4
 2    C11      C12       C13      C14
Run Code Online (Sandbox Code Playgroud)

在这3个数据帧中,我想创建两个数据帧(最终和合并).最后,首选项顺序 - dataFrame 1> Dataframe 2> Dataframe 3

如果数据帧1中存在结果(val1!= null),我将该行存储在最终数据帧中.

我的最终结果应该是:

id  finalVal1    finalVal2   finalVal3   finalVal4 
1     B1           B21         B31         B41
2     A2           A21         A31         A41
Run Code Online (Sandbox Code Playgroud)

Consolidated Dataframe将存储所有3个结果.

我怎样才能有效地做到这一点?

scala join apache-spark

6
推荐指数
1
解决办法
2万
查看次数

从散列映射创建数据帧,其中键作为列名称,值作为Spark中的行

我有一个数据框,我有一个列,这是一个像这样的数据帧中的地图 -

scala> df.printSchema
Run Code Online (Sandbox Code Playgroud)
root
 |-- A1: map (nullable = true)
 |    |-- key: string
 |    |-- value: string (valueContainsNull = true)
Run Code Online (Sandbox Code Playgroud)

我需要从dataframe中选择所有键作为列名称,将值作为行.

例如:假设我有2条记录,如下所示 -

1. key1 -> value1, key2 -> value2, key3 -> value3 ....
2. key1 -> value11, key3 -> value13, key4 -> value14 ...
Run Code Online (Sandbox Code Playgroud)

我希望输出数据帧为

key1             key2                 key3             key4
value1           value2               value3            null
value11          null                 value13           value14
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

scala dataframe apache-spark apache-spark-sql

2
推荐指数
1
解决办法
2530
查看次数