小编ren*_*key的帖子

大数据集缓存中的"GC开销限制超出"到火花存储器中(通过sparklyr和RStudio)

我对我正在尝试使用的大数据技术非常陌生,但到目前为止,我已设法在RStudio中设置sparklyr以连接到独立的Spark集群.数据存储在Cassandra中,我可以成功地将大型数据集引入Spark内存(缓存)以对其进行进一步分析.

然而,最近我在将一个特别大的数据集引入Spark内存时遇到了很多麻烦,即使集群应该有足够的资源(60个内核,200GB RAM)来处理其大小的数据集.

我认为,通过限制数据被缓存到的利益,我可以克服这个问题(使用我以前的查询答案代码短短选择列在这里),但事实并非如此.发生的事情是我的本地机器上的jar进程加速占用所有本地RAM和CPU资源,整个进程冻结,并且群集执行程序不断被删除并重新添加.奇怪的是,即使我只选择1行进行缓存(这应该使这个数据集比我没有问题缓存到Spark内存中的其他数据集小得多)也会发生这种情况.

我已经查看了日志,这些似乎是过程中早期唯一的信息性错误/警告:

17/03/06 11:40:27 ERROR TaskSchedulerImpl: Ignoring update with state FINISHED for TID 33813 because its task set is gone (this is likely the result of receiving duplicate task finished status updates) or its executor has been marked as failed.
17/03/06 11:40:27 INFO DAGScheduler: Resubmitted ShuffleMapTask(0, 8167), so marking it as still running
...
17/03/06 11:46:59 WARN TaskSetManager: Lost task 3927.3 in stage 0.0 (TID 54882, 213.248.241.186, executor 100): ExecutorLostFailure (executor 100 exited caused by …
Run Code Online (Sandbox Code Playgroud)

r cassandra apache-spark sparklyr

7
推荐指数
1
解决办法
1227
查看次数

Spark(scala)数据帧 - 检查列中的字符串是否包含集合中的任何项目

我是scala和spark的新手,我一直在努力寻找这个问题的解决方案 - 它正在努力.我已经尝试了以下代码的20种不同变体并type mismatch在我尝试时遇到错误对列执行计算.

我有一个spark数据帧,我希望检查特定列中的每个字符串是否包含来自预定义List(或Set)单词的任意数量的单词.

以下是一些用于复制的示例数据:

// sample data frame
val df = Seq(
      (1, "foo"),
      (2, "barrio"),
      (3, "gitten"),
      (4, "baa")).toDF("id", "words")

// dictionary Set of words to check 
val dict = Set("foo","bar","baaad")
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试使用比较结果创建第三列,以查看其中$"words"列中的字符串是否包含单词集中的任何dict单词.所以结果应该是:

+---+-----------+-------------+
| id|      words|   word_check| 
+---+-----------+-------------+
|  1|        foo|         true|     
|  2|      bario|         true|
|  3|     gitten|        false|
|  4|        baa|        false|
+---+-----------+-------------+
Run Code Online (Sandbox Code Playgroud)

首先,我试图看看我是否可以在不使用UDF的情况下本地执行,因为dict Set实际上是一个> 40K字的大型字典,据我所知,这将比UDF更有效:

df.withColumn("word_check", dict.exists(d => $"words".contains(d)))
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

type mismatch;
found   : …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

3
推荐指数
3
解决办法
7327
查看次数

Scala:展平混合集(或列表或数组)

我有一个包含字符串组合和字符串子集的Set,如下所示:

val s = Set(brand1-_test, Set(brand-one, brand_one, brandone), brands-two, brandthree1, Set(brand-three2, brand_three2, brandthree2))
Run Code Online (Sandbox Code Playgroud)

如何压扁这个以便我有一套扁平的字符串?s.flatten不适用于以下错误:

error: No implicit view available from Object => scala.collection.GenTraversableOnce[B]
Run Code Online (Sandbox Code Playgroud)

flatMap也不是.我在这里错过了什么?Set可以很容易地包含subLists或subArrays(它们是前一个函数的结果),如果这会产生影响.

scala

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

标签 统计

apache-spark ×2

scala ×2

cassandra ×1

r ×1

sparklyr ×1