小编AJm*_*AJm的帖子

Spark - sortBy和sortByKey之间的区别

Spark中有什么区别sortBysortByKey功能有什么区别?

我在下面的转换中执行此操作,其中我使用sortBy&sortByKey.两者都给出了相同的结果,然后有什么不同.

val reducedSfpd = sfpd.map(x => (x(col_2),1)).reduceByKey((x,y) => x+y)

val top3Dist = reducedSfpd.sortBy(_._2,false).collect().take(3)    
val top3Dist = reducedSfpd.map(x => x.swap).sortByKey(false).take(3)
Run Code Online (Sandbox Code Playgroud)

sortBy && sortByKey之间是否存在性能相关的差异.

事实上,当我使用时,sortBy我正在保存一个通过应用map函数交换'Key - Values'的转换.那为什么sortByKey呢?

apache-spark

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

如何测试Spark RDD

我不确定是否可以在Spark中测试RDD。

我见过一篇文章,其中说模拟RDD不是一个好主意。是否有其他方法或最佳做法来测试RDD

apache-spark

5
推荐指数
2
解决办法
2190
查看次数

SparkSession 不接受运行时配置

在我的应用程序中,我正在创建一个SparkSession对象,然后尝试读取我的属性文件并在运行时设置属性。但它没有选择我在运行时传递的属性。

我正在以 YARN 集群模式提交我的应用程序

这是我在 Trait 中创建的初始 Spark 会话对象

val spark = SparkSession.builder().appName("MyApp").enableHiveSupport().getOrCreate()
Run Code Online (Sandbox Code Playgroud)

然后在对象内部的主函数中,我扩展了这个 Trait,所以我的 spark 会话在 Trait 和我的对象(包含 main)中初始化,我正在设置:

spark.conf.set(spark.sql.hive.convertMetastoreParquet, false)
spark.conf.set(mapreduce.input.fileinputformat.input.dir.recursive,true)
spark.conf.set(spark.dynamicAllocation.enabled, true)
spark.conf.set(spark.shuffle.service.enabled, true)
spark.conf.set(spark.dynamicAllocation.minExecutors,40)
Run Code Online (Sandbox Code Playgroud)

所以理想情况下,我的应用程序必须从 40 个执行程序开始,但它正在启动,然后完全使用默认的 2 个执行程序运行..

scala configuration-files apache-spark apache-spark-sql

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

Spark - 以编程方式创建具有不同数据类型的模式

我有一个由 7-8 个字段组成的数据集,这些字段的类型为 String、Int 和 Float。

我正在尝试使用以下方法通过编程方法创建架构:

val schema = StructType(header.split(",").map(column => StructField(column, StringType, true)))
Run Code Online (Sandbox Code Playgroud)

然后将其映射到 Row 类型,如:

val dataRdd = datafile.filter(x => x!=header).map(x => x.split(",")).map(col => Row(col(0).trim, col(1).toInt, col(2).toFloat, col(3), col(4) ,col(5), col(6), col(7), col(8)))
Run Code Online (Sandbox Code Playgroud)

但是在我使用 DF.show() 创建 DataFrame 之后,它给出了 Integer 字段的错误。

那么如何在数据集中有多种数据类型的情况下创建这样的模式

scala apache-spark apache-spark-sql spark-dataframe

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

如何在 Hive 中获取月份名称缩写而不是月份编号

我想要月份名称而不是来自 HIVE 中传递的日期的月份编号

我在做

select Month(date_field) from <tablename>;
Run Code Online (Sandbox Code Playgroud)

这给了我一个月数。如何获得月份名称?

hive apache-spark-sql

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

Apache Spark 中的 mapPartitions 和 foreachPartition 有什么区别

我有一个 DataFrame,其中一列有逗号分隔的数据。

例如:数据看起来像这样:[{value:1}, {value:2, value:3}, {some value}, {somevalue, othervalue}]

该列是字符串数据类型。我想将它转换为 List 并应用一些函数。现在我有一个函数可以将字符串列转换为列表和其他应用逻辑。

但是哪个函数会更好和优化,因为我们有 2 个类似的声音函数mapPartitionsforeachPartitions,它是否具有完全相同的性能以及在什么场景下使用哪个?

apache-spark pyspark pyspark-sql

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

如何合并Keys上的Maps并合并其值scala

我有2张地图:

val map1 = Map("col_1" -> "data_1", "col_2" -> "data_2", "col_3" -> "data_3")
val map2 = Map("col_1" -> "myval_1", "col_2" -> "myval_2", "col_3" -> "myval_3")
Run Code Online (Sandbox Code Playgroud)

要求输出:

res = Map("col_1" -> ("data_1", "myval_1"), "col_2" -> ("data_2", "myval_2"),
"col_2" -> ("data_2", "myval_2") )
Run Code Online (Sandbox Code Playgroud)

基本上保持'map1'的键并合并两个映射的值输出必须是元组而不是List或Seq

scala

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