- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在探索 Spark。我面临以下任务 - 获取一个 RDD,根据特定条件对其进行分区,然后将多个文件写入 S3 存储桶中的不同文件夹。
在我们来到上传到 S3 部分之前,一切都很好。我已经在 SO 上阅读了与此问题相关的所有问题,发现我可以对 RDD 使用 AmazonS3Client
或 saveToTextFile
方法。我面临两个问题:
如果我使用 AmazonS3Client
,我会得到一个 java.io.NotSerializableException
,因为代码是从 Spark 驱动程序发送到它需要的 worker序列化,显然 AmazonS3Client 不支持它。
如果我使用 saveToTextFile
,我会遇到类似的问题。当我进入 foreachPartition
循环时,我需要获取 Iterable[T]
(在本例中为 p
),所以如果我想使用 saveToTextFile
我需要创建 Iterable 的 RDD,因此需要 parallelize
。问题是 SparkContext sc
也(理所当然地)没有序列化。
rdd.foreachPartition { p =>
sc.parallelize(p.toSeq).saveAsTextFile(s"s3n://")
}
任何帮助将不胜感激。
最佳答案
没有必要这样做。您可以将 saveAsTextFile
与 rdd 一起使用:
rdd.saveAsTextFile(s"s3n://dir/to/aux/file")
saveAsTextFile
将写入包含文件许多部分(与分区一样多的部分)的文件夹中的 S3。然后,如果需要,您可以合并为一个文件:
def mergeToS3(srcPath: String, dstPath: String, sc: SparkContext): Unit = {
val hadoopConfig = sc.hadoopConfiguration
val fs = FileSystem.get(new URI(srcPath), hadoopConfig)
FileUtil.copyMerge(fs, new Path(srcPath), fs, new Path(dstPath), true, hadoopConfig, null)
}
mergeToS3("s3n://dir/to/aux/file", "s3n://dir/to/singleFile",sc)
关于apache-spark - Spark RDD foreachPartition 到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38746045/
spark foreachPartition,如何获取分区的索引(或者序列号,或者识别分区的东西)? val docs: RDD[String] = ... println("num partitio
我正在使用 2.3 版本的 pySpark(在我当前的开发系统中无法更新到 2.4),并且有以下关于 foreachPartition 的问题. 首先介绍一点背景信息:据我了解,pySpark-UDF
我的环境如下 Spark 1.6.1Hadoop 2.6.2 我们的需求如下(全部在Java Spark中) 1. 读取 CSV 文件并应用架构并将其转换为数据框 2.通过Spark分区SQL获取所有
我尝试在具有 8 个分区的 RDD 上使用 pyspark 来使用 forEachPartition() 方法。我的自定义函数尝试为给定的字符串输入生成字符串输出。这是代码 from google.c
我尝试在具有 8 个分区的 RDD 上使用 pyspark 来使用 forEachPartition() 方法。我的自定义函数尝试为给定的字符串输入生成字符串输出。这是代码 from google.c
我通过 spark-shell 评估了以下几行 scala 代码: val a = sc.parallelize(Array(1,2,3,4,5,6,7,8,9,10)) val b = a.coal
我们正在使用 spark 进行文件处理。我们正在处理相当大的文件,每个文件大约 30 GB,大约有 40-50 百万行。这些文件是格式化的。我们将它们加载到数据框中。最初的要求是识别符合条件的记录并将
我有一个 Spark Streaming 作业,它从 Kafka 读取数据,并在再次写入 Postrges 之前与 Postgres 中的现有表进行一些比较。这是它的样子: val message =
我有一个 DataProc 集群,其中有一个 master 和 4 个 worker。我有这个 Spark 工作: JavaRDD rdd_data = javaSparkContext.parall
我有一些这样的代码: println("\nBEGIN Last Revs Class: "+ distinctFileGidsRDD.getClass) val lastRe
我正在尝试找到一种方法来捕获 Spark 在其驱动程序的 foreachPartition() 方法内引发的异常。在数据集上使用 foreachPartition() 时,我传递了一个在各个工作线程之
我目前正在探索 Spark。我面临以下任务 - 获取一个 RDD,根据特定条件对其进行分区,然后将多个文件写入 S3 存储桶中的不同文件夹。 在我们来到上传到 S3 部分之前,一切都很好。我已经在 S
我想在 foreachPartition 中使用 SparkContext 和 SQLContext ,但由于序列化错误而无法执行。我知道这两个对象都不可序列化,但我认为 foreachPartiti
我有一个简单的 Spark 作业,用于将结果映射、计算并将结果写入 Oracle DB。我在将结果写入数据库时遇到问题。 按键减少结果后,我调用 foreachPartition 操作来建立连接并
我想知道 foreachPartition 与 foreach 方法相比是否会由于更高级别的并行性而产生更好的性能,考虑到我的情况'm 流经一个 RDD 以便对累加器变量执行一些求和。 最佳答案 fo
我正在尝试为我的数据集的每个分区拟合一个 ML 模型,但我不知道如何在 Spark 中执行此操作。 我的数据集基本上看起来像这样并且按公司划分: Company | Features | Target
我有以下使用结构化流 (Spark 2.2) 的工作代码,以便从 Kafka (0.10) 读取数据。我无法解决的唯一问题是在 ForeachWriter 中使用 kafkaProducer 时与 T
我想将每个分区的数据保存到MySQL数据库。为此,我创建了实现 VoidFunction<> 的类: public class DatabaseSaveFunction implements Void
我有一个 DataFrame,其中一列有逗号分隔的数据。 例如:数据如下所示:[{value:1}, {value:2, value:3}, {some value}, {somevalue, oth
我正在使用 Spark 读取一堆文件,对它们进行详细说明,然后将它们全部保存为序列文件。我想要的是每个分区有 1 个序列文件,所以我这样做了: SparkConf sparkConf = new Sp
我是一名优秀的程序员,十分优秀!