问题标签 [apache-spark-dataset]

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.

0 投票
1 回答
435 浏览

scala - 使用其他数据集的一部分创建 Spark 数据集

我正在尝试通过从另一个数据集中获取间隔来创建一个新数据集,例如,将 dataset1 作为输入,将 dataset2 作为输出:

我设法使用数组来做到这一点,但对于 mlib,需要一个数据集。

我的数组代码:

FlatMap 似乎是要走的路,但函数如何在数据集中搜索下一个值?

0 投票
1 回答
6418 浏览

scala - Spark DataSet 日期时间解析

我应该如何使用 spark 2.0 数据集 API 正确执行日期时间解析?

数据框/ RDD 有很多样本,例如

像这样的一类

不足以强制转换类型。我应该如何使用数据集 API 正确执行此操作?

编辑

加载数据工作。例如。aprint schema显示myDateFiled: timestamp (nullable = true) 但是 myDf.show 会导致 a

这让我相信我对日期的解析是不正确的。怎么会这样?

0 投票
1 回答
184 浏览

apache-spark - DataFrame/Dataset join 在 Spark 2.0/Yarn 中没有产生正确的结果

我们有一个在 Hadoop 2.7.2、Centos 7.2 上运行 Apache Spark 2.0 的集群。我们使用 Spark DataFrame/DataSet API 编写了一些新代码,但在将数据写入 Windows Azure 存储 Blob(默认 HDFS 位置)然后读取数据后,我们注意到连接结果不正确。我已经能够使用在集群上运行的以下代码片段来复制该问题。

输出

哪个是对的。然而,在写入和读取数据之后,我们看到了这个

输出

但是,使用 RDD API 会产生正确的结果

我们尝试将输出格式更改为 ORC 而不是 parquet,但我们看到了相同的结果。在本地而非集群上运行 Spark 2.0 不会出现此问题。在 Hadoop 集群的主节点上以本地模式运行 spark 也可以。只有在 YARN 上运行时,我们才会看到这个问题。

这似乎也与此问题非常相似:https ://issues.apache.org/jira/browse/SPARK-10896

0 投票
2 回答
9994 浏览

scala - Spark:如果 DataFrame 有模式,DataFrame 如何成为 Dataset[Row]

这篇文章声称DataFrameSpark 中的 a 等价于 a Dataset[Row],但是这篇博文显示 aDataFrame有一个模式。

以博客文章中将 RDD 转换为 a 的示例为例DataFrame:如果DataFrame与 相同Dataset[Row],那么将 an 转换RDD为 aDataFrame应该一样简单

但相反,它表明它是这个

显然,数据框实际上是行和模式的数据集。

0 投票
0 回答
403 浏览

scala - Apache Spark Window 函数,按大小过滤

我正在尝试使用 Window 函数来计算窗口内的平均值,但在计算之前不包括 0。

我尝试像这样过滤大小,但没有运气。

最后,

知道如何解决这个问题吗?

0 投票
1 回答
6852 浏览

scala - Spark 2.0 DataSets groupByKey 和划分操作和类型安全

我对 Spark 2.0 DataSets 非常满意,因为它具有编译时类型安全性。但是这里有几个我无法解决的问题,我也没有找到好的文档。

问题 #1 - 聚合列上的除法操作 - 考虑下面的代码 - 我有一个 DataSet[MyCaseClass],我想在 c1、c2、c3 和 sum(c4) / 8 上进行 groupByKey。如果我只计算以下代码,则效果很好sum 但它给出了divide(8)的编译时间错误。我想知道如何实现以下目标。

如果我删除 .divide(8) 操作并运行上面的命令,它会给我下面的输出。

问题 #2 - 将 groupedByKey 结果转换为另一个 Typed DataFrame - 现在我的问题的第二部分是我想再次输出一个 typed DataSet。为此,我有另一个案例类(不确定是否需要),但我不确定如何使用分组结果进行映射 -

但这再次失败并出现异常,因为按关键结果分组没有直接与 AnotherClass 映射。

PS:任何其他实现上述目标的解决方案都非常受欢迎。

0 投票
2 回答
1095 浏览

scala - Apache Spark 根据另一行更新 RDD 或数据集中的一行

我试图弄清楚如何根据另一行更新一些行。

例如,我有一些数据,如

我想将同一城市的用户更新为相同的 groupId(1 或 2)

如何在我的 RDD 或 Dataset 中实现这一点?

因此,为了完整起见,如果Id是一个字符串,密集等级将不起作用?

例如 ?

所以结果看起来像这样:

0 投票
1 回答
843 浏览

apache-spark - 如何将行rdd转换为键入的rdd

是否可以将 Row RDD 转换为 Typed RDD。在下面的代码中,我可以将行 JavaRDD 转换为计数器类型 JavaRDD

代码 :

在斯卡拉:

我需要为案例类提供某种构造函数吗?

0 投票
0 回答
214 浏览

apache-spark - 使用有序键对 Spark SQL 数据帧进行高效过滤

我有一个包含“键”列的 Spark SQL 数据框。我要运行的查询从过滤键范围开始。我的问题概述:在随后运行更复杂的 SQL 查询之前,是否可以通过键对数据帧进行排序以便进行有效的键范围过滤器?

我知道使用 PairRDDFunctions 可以对键值 RDD(即 Tuple2 上的 RDD)进行这种有效的过滤。我的工作流程目前如下所示:

这是有效的,因为只处理包含相关键范围的分区。但是,我了解 Spark SQL 与普通 RDD 相比使用了优化的存储格式。上述工作流程无法利用这一点,因为它是缓存的键值 RDD。

所以,我的具体问题是:有没有更有效的方法来达到预期的结果?

任何指针将不胜感激。

0 投票
1 回答
338 浏览

scala - 使用 Java 对象而不是 Scala 案例类调用 RDD#toDS 时出现 StackOverflowError

我正在尝试使用在 3rd 方库中定义的现有域对象,即 HAPI-FHIR 的Patient对象来创建一个强类型的 Spark DataSet[Patient],如下所示:

但是,当我在上面进行 RDD#toDS 调用时,我得到了一个很长的StackOverflowError.

完整的堆栈跟踪在这里:https ://gist.github.com/vratnagiri-veriskhealth/6dcec9dbc6f74308019ab16c8d278a9b

鉴于我上面提到的域对象的复杂性,我意识到这可能是一个愚蠢的差事,但是,鉴于我是一个 scala 新手,我确实想确保我不会错过任何可能得到这个的简单调整在我放弃这个追求之前工作。

这是堆栈跟踪的一部分:

谢谢!