是否可以将 Spark 中的 data.table 与 Spark Dataframes 一起使用?

Posted

技术标签:

【中文标题】是否可以将 Spark 中的 data.table 与 Spark Dataframes 一起使用?【英文标题】:Is it possible to use data.table on SparkR with Sparkdataframes? 【发布时间】:2018-04-22 10:58:15 【问题描述】:

情况

我曾经使用 data.table 而不是 plyr 或 sqldf 在 Rstudio 上工作,因为它真的很快。现在,我正在一个 azure 集群上研究 sparkR,如果我可以在我的 spark 数据帧上使用 data.table 并且它是否比 sql 快,我想现在这样做?

【问题讨论】:

Rstudio 有一个 sparklyr 包,它允许您使用带有 dplyr 的 spark 数据框。 是的,@DavidArenburg,但是可以使用 data.table 包及其习惯用法来分析 spark 数据帧,还是必须使用 dplyr? @Avraham data.tables 作者在 h2o.ai 工作。它是一个分布式系统(基于 Spark IIRC),它不理解 R 语法,并且内置了许多 data.table 功能(感谢 Matt),例如分布式二进制搜索(参见this)。除此之外,我不确定您将如何在 Spark data.frame 上使用 data.table,除非您将其收集到一个节点。 【参考方案1】:

这是不可能的。 SparkDataFrames 是带有精简 R 接口的 Java 对象。虽然在某些有限的情况下(dapplygapply)可以使用工作端 R,但那里的data.table 没有用处。

【讨论】:

谢谢,但是保留数据帧并使用 data.table 或使用 SparkDataFrames 并使用 sparklyr 或 sparkSQL 是否更快??

以上是关于是否可以将 Spark 中的 data.table 与 Spark Dataframes 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

是否有任何包或方法可以将 data.table R 代码转换/发送为 sql 查询以发送到数据库?

将一行中的项目与所有其他行进行比较,并使用 data.table - R 遍历所有行

使用等效的purrr ::: map迭代data.table

如何删除 data.table 中的多个列?

我不能在 data.table 中使用 dtplyr 做啥

我可以强制 R data.table %like% 使用“fixed = TRUE”吗?