问题标签 [apache-spark-2.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-s3 - 如何与 partitionBy 或 InsertInto Hive 并行保存 Dataframe/Dataset 的每个分区
我目前使用 spark 2.0.1,我尝试使用 insertInto() 将我的数据集保存到“分区表 Hive”中,或者使用 partitionBy("col") 将我的数据集保存到 S3 存储中,同时工作在并发(并行)中。但是使用这 2 种方法,我的数据集的每个分区都会一个接一个地按顺序保存。这是非常非常缓慢的。我已经知道我必须一次使用 insertInto() 或 partitionBy() 一个。我假设 spark.2.0.1 Dataframe 是 Resilient Data Set 。我当前的代码:
或者
所以我用 df.foreachPartition 尝试了一些东西,如下所示:
您将在下面找到提取日志。在第一个示例中,它是 hive 中的“InserInto(tablehivealreadypartitionned)”。我们可以看到,Spark 的所有“分区”都是一一写入的。在第二个示例中,直接写入 S3 的是“partitionBy().save()”。我们还可以看到,所有的“分区”spark 都是一一写入的。我们处理的数据帧只有一个“分区”,它的大小约为 200MB 未压缩(在内存中)。使用选项 local[4] ,作业可以花费 120s 170s 来保存数据。
不幸的是,我仍然没有找到一种方法来并行写入/保存我的数据集的每个 spark 分区。
有人已经这样做了吗?
你能告诉我如何进行吗?
这是一个错误的方向吗?感谢您的帮助
csv - 读取包含嵌入逗号的引用字段的 csv 文件
我正在阅读 Pyspark 中的 csv 文件,如下所示:
但是,数据文件中包含嵌入逗号的引用字段,不应将其视为逗号。我如何在 Pyspark 中处理这个问题?我知道 pandas 可以处理这个问题,但 Spark 可以吗?我使用的版本是 Spark 2.0.0。
这是一个在 Pandas 中工作但使用 Spark 失败的示例:
文件内容:
scala - 对于 Java 内存不足错误,我应该增加哪种类型的 Spark 内存?
所以,我有一个如下所示的模式。
因此,在内部someFunction
,在一个地方制作了一个大字符串,它仍然不是那么大(< 1 GB),但是java.lang.OutOfMemoryError: Java heap space
在构建该字符串时有时会出错。即使我的执行程序内存非常大(8 GB),也会发生这种情况。
根据这篇文章,有用户内存和 Spark 内存。现在在我的情况下,我应该增加哪个分数,用户内存还是 Spark 内存?
PS:我使用的是 Spark 2.0 版
apache-spark - 在 Spark 2.0 中从 AVRO 写入镶木地板时出现 NullPointerException
我正在从 AWS S3 加载 AVRO 文件并将它们写回镶木地板。
出于某种原因,我NullPointerException
在写实木复合地板时遇到了这个问题。可能是在阅读 avro 时查看java.io.ObjectInputStream.readObject0
.
刚从 1.6 移到 2.0,不知道可能是什么问题。使用包com.databricks:spark-avro_2.11:3.0.1
。
似乎与https://github.com/databricks/spark-avro/issues/147有关,但这应该用 3.0.1 修复。
java - Spark 2.0.1 java.lang.NegativeArraySizeException
我开始玩 Spark 2.0.1。新的数据集 API 非常干净,但我遇到了非常简单的操作问题。
也许我错过了一些东西,希望有人能提供帮助。
这些说明
产生一个
以及 JVM (1.8) 检测到的致命错误。
使用数据集 api 处理数据(即选择、依靠 infos 对象)工作正常。
如何在 Dataset 和 RDD 之间切换?
scala - Spark 2.0 数据集与数据帧
从 spark 2.0.1 开始我有一些问题。我阅读了很多文档,但到目前为止找不到足够的答案:
- 和有什么区别
df.select("foo")
df.select($"foo")
- 我理解正确吗
myDataSet.map(foo.someVal)
是类型安全的,不会转换为RDD
但保留在 DataSet 表示中/没有额外的开销(2.0.0 的性能明智)
- 所有其他命令,例如 select、.. 只是语法糖。它们不是类型安全的,可以使用映射。
df.select("foo")
如果没有 map 语句 ,我怎么能保证类型安全?- 为什么我应该使用 UDF / UADF 而不是地图(假设地图保留在数据集表示中)?
scala - 如何将已知类型的数据集转换为具有泛型类型的数据集
所以我有这个示例代码,我有一个Dataset[Event]
我想根据动态计算的通用类型的键来分组的代码。
这个想法是我应该能够对new NameEventProc().group(ds)
扩展的不同类执行 a 或类似操作EventProc
。但是代码甚至没有编译并因错误而失败。
根据我收集的信息,Spark 无法理解类型K
是什么,因此无法使用适当的编码器。但我不知道如何解决这个问题。
pyspark - 在 PySpark 的两个不同 pyspark.sql.dataframes 中的两列中创建一个 pyspark.sql.dataframe
假设 pyspark 中的以下两个 Dataframes 具有相同的行数:
df1:
|_ Column1a
|_ Column1b
df2:
|_ 列 2a
|_ 列 2b
我希望创建一个只有 Column1a 和 Column 2a 的新 DataFrame“df”。什么可能是最好的解决方案?
amazon-web-services - 完成写入 S3 后,EMR 上的 Spark 步骤只是挂起为“正在运行”
在 EMR 5.1.0 上运行 PySpark 2 作业作为一个步骤。即使在脚本完成了_SUCCESS
写入 S3 的文件和 Spark UI 显示作业已完成后,EMR 仍将步骤显示为“正在运行”。我已经等了一个多小时,看看 Spark 是否只是试图清理自己,但该步骤从未显示为“已完成”。日志中写的最后一件事是:
Spark 1.6 没有这个问题。我尝试了一堆不同的hadoop-aws
罐子aws-java-sdk
无济于事。
我正在使用默认的 Spark 2.0 配置,因此我认为不会编写任何其他类似元数据的内容。此外,数据的大小似乎对这个问题没有影响。
amazon-web-services - PySpark:AWS s3n 正在工作,但 s3a 没有
我一直在尝试使用本地机器上的 Spark 访问 Amazon s3 上的数据。我可以使用 s3n 访问数据,但不能使用 s3a,以下是配置
Spark :- 使用 hadoop 2.7 预构建的 2.0.1
出现错误:-
我该如何解决这个错误?