问题标签 [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 投票
0 回答
310 浏览

scala - 如何将已知类型的数据集转换为具有泛型类型的数据集

所以我有这个示例代码,我有一个Dataset[Event]我想根据动态计算的通用类型的键来分组的代码。

这个想法是我应该能够对new NameEventProc().group(ds)扩展的不同类执行 a 或类似操作EventProc。但是代码甚至没有编译并因错误而失败。

根据我收集的信息,Spark 无法理解类型K是什么,因此无法使用适当的编码器。但我不知道如何解决这个问题。

0 投票
2 回答
33620 浏览

scala - 如何从 SparkSQL DataFrame 中的 MapType 列获取键和值

我有一个镶木地板文件中的数据,该文件有 2 个字段:object_id: Stringalpha: Map<>.

它被读入 sparkSQL 中的数据框,架构如下所示:

我正在使用 Spark 2.0,我正在尝试创建一个新的数据框,其中的列需要是地图的object_id加键,如ALPHAobject_id, key1, key2, key2, ...

我首先想看看我是否至少可以像这样访问地图:

但不幸的是,我似乎无法弄清楚如何访问地图的键。

有人可以告诉我一种将object_id加号映射键作为列名并将映射值作为新数据框中的相应值的方法吗?

0 投票
2 回答
8890 浏览

apache-spark - 为什么 Apache Spark SQL 中的列更改为可为空?

为什么nullable = true在执行某些函数后使用,即使DataFrame.

现在何时df.printSchema调用nullablefalse用于两列。

但是现在,至少是以前的一nullable列。这怎么解释?truefalse

0 投票
2 回答
11605 浏览

scala - 使用 Spark 数据集在 Scala 中执行类型化连接

我喜欢 Spark 数据集,因为它们在编译时给我分析错误和语法错误,还允许我使用 getter 而不是硬编码的名称/数字。大多数计算都可以通过 Dataset 的高级 API 完成。例如,通过访问 Dataset 类型的对象来执行agg、select、sum、avg、map、filter 或 groupBy操作比使用 RDD 行的数据字段要简单得多。

但是这里缺少连接操作,我读到我可以像这样进行连接

但这不是我想要的,因为我更愿意通过案例类接口来做,所以更像这样

目前最好的选择似乎是在案例类旁边创建一个对象,并给这个函数提供正确的列名作为字符串。所以我会使用第一行代码,但放置一个函数而不是硬编码的列名。但这感觉不够优雅..

有人可以在这里给我其他选择的建议吗?目标是从实际的列名中抽象出来,并最好通过案例类的 getter 工作。

我正在使用 Spark 1.6.1 和 Scala 2.10

0 投票
1 回答
2987 浏览

scala - 火花时间差

从 spark 1.5.x 开始,添加了一些方便的方法来处理时间。

但这会返回天数的差异。是否有任何选项可以将其转换为不同的时间间隔,例如年?

我手动使用

这已经足够好了。但是,如果更准确地计算日期差异会更好,例如包括月份/天,如显示的http://howtodoinjava.com/for-fun-only/java-code-to-calculate-age-from-date-of-出生/

UDF 是当前 spark 2.0.2 的首选解决方案吗?还是我错过了将差异转换为天数的选项,例如年数?

0 投票
1 回答
2074 浏览

apache-spark - spark如何确定任务数量?

在读取大量文本文件时,Spark 创建的任务数量让我有点困惑。

这是代码:

每个文件夹包含 24 个文件,因此从读取a, b, c完整文件夹后总共有 26 个文件。b现在,如果我执行一个动作,比如.count(),Spark UI 会显示有 24 个任务。但是,我会认为有 26 个任务,例如每个分区 1 个任务和每个文件 1 个分区。

如果有人能给我更多关于实际发生的事情的见解,那就太好了。

0 投票
1 回答
776 浏览

scala - 如何将编码器作为参数传递给数据帧的 as 方法

我想通过使用不同的案例类将 dataFrame 转换为 dataSet。现在,我的代码如下所示。

所以,我的问题是“无论如何我可以通过案例类使用一个通用函数作为这个函数的额外参数吗?”

0 投票
0 回答
124 浏览

apache-spark - 数据集中的 Apache Spark 搜索

我是新来的火花并试图实现以下目标。我无法找到最好的方法来做到这一点。请建议。

我正在使用 Spark 2.0 及其数据集、Cassandra 3.7 和 Cassandra Java 连接器

我有一个带有分区键和 2 个集群键的 ColumnFamily。例如 myksyspace.myTable (some_id, col1, col2, col3, col4, col5, PRIMARY KEY (some_id, col1, col2))

我可以在 myTableDataset 中获取 myksyspace.myTable 的数据。数据有大量行(可能是 200000)。

每 1 小时后,我从其他来源获取更新数据,其中可能有一些新数据不在我的数据库中,我想将其保存在数据库中。

我从其他来源收到的数据包含更新的数据,但没有“col2”的值。我在我的 Java 代码中的列表“dataListWithSomeNewData”中获取其余数据。

现在我想将列表中的数据与 myTableDataset 中的数据进行匹配,并将 col2 从数据集中复制到列表“dataListWithSomeNewData”,然后生成新数据集并将其保存回数据库中。这样我现有的数据将被更新。我希望插入新数据,并为每个列表项插入新生成的 col2 唯一值。我如何实现这一目标?

我想避免在数据集上使用 collectAsList() 以避免内存不足,因为我可能会在内存中加载大数据。使用 collectAsList(),代码可以处理少量数据。

对此有任何建议/想法。我怎样才能做到这一点?

先感谢您

0 投票
1 回答
7747 浏览

apache-spark - Spark 更简单的 value_counts

类似于Spark - Group by Key 然后 Count by Value 的东西可以让我df.series.value_counts()在 Spark 中模拟 Pandas 的功能:

结果对象将按降序排列,因此第一个元素是最常出现的元素。默认情况下排除 NA 值。(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.value_counts.html

我很好奇这对于 Spark 中的数据帧是否不能更好/更简单地实现。

0 投票
1 回答
7283 浏览

apache-spark - spark collect as Array[T] and not as Array[Row] from data frame

I can collect a column like this using the RDD API.

However, as I am initially using a Dataset I rather would like to not switch the API level. A simple df.select("column).collect returns an Array[Row] where the .flatten operator no longer works. How can I collect to Array[T e.g. String] directly?