问题标签 [sparklyr]
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.
r - 将大型数据集缓存到 spark 内存中时“超出 GC 开销限制”(通过 sparklyr 和 RStudio)
我对我正在尝试使用的大数据技术非常陌生,但到目前为止,我已经设法在 RStudio 中设置 sparklyr 以连接到独立的 Spark 集群。数据存储在 Cassandra 中,我可以成功地将大型数据集带入 Spark 内存(缓存)以对其进行进一步分析。
然而,最近我在将一个特别大的数据集导入 Spark 内存时遇到了很多麻烦,即使集群应该有足够的资源(60 个内核,200GB RAM)来处理其大小的数据集。
我认为通过将缓存的数据限制为仅选择几个感兴趣的列,我可以克服这个问题(使用我之前查询的答案代码here),但事实并非如此。发生的情况是我本地机器上的 jar 进程加速以占用所有本地 RAM 和 CPU 资源,整个进程冻结,并且集群上的执行器不断被删除和重新添加。奇怪的是,即使我只选择 1 行进行缓存,也会发生这种情况(这应该使这个数据集比其他我在缓存到 Spark 内存中没有问题的数据集小得多)。
我查看了日志,这些似乎是流程早期唯一的信息错误/警告:
然后在 20 分钟左右后,整个工作崩溃了:
我已经更改了连接配置以增加心跳spark.executor.heartbeatInterval: '180s'
间隔spark.yarn.executor.memoryOverhead
(
在我的配置文件中,我通过一次添加以下每个设置进行了实验(均无效):
更新:我当前的完整yml
配置文件如下:
所以我的问题是:
- 有人对在这种情况下该怎么做有任何想法吗?
是 - 我可以更改配置设置以帮助解决此问题吗?
- 或者,有没有办法以 RStudio/sparklyr 作为驱动程序批量导入 cassandra 数据?
- 或者,有没有办法在数据被带入缓存时对数据进行处理/过滤/编辑,以使结果表更小(类似于使用 SQL 查询,但使用更复杂的 dplyr 语法)?
apache-spark - 无法解析主 URL:“spark.bluemix.net”
我正在尝试从在我的桌面机器上运行的 RStudio 连接到 IBM 的 Spark as a Service 在 Bluemix 上运行。
我已经config.yml
从运行在 IBM 的 Data Science Experience 上的自动配置的 RStudio 环境中复制了:
我正在尝试像这样连接:
错误:
stackoverflow 上还有一些其他问题带有类似的错误消息,但它们并未尝试连接到在 Bluemix 上运行的 Spark 服务。
更新 1
我已将 config.yml 更改为如下所示:
...和我的连接代码看起来像这样:
但是,现在的错误是:
r - SparklyR/Spark SQL 根据字节数/字符数将字符串拆分为多列
我有一个火花数据框 TABLE1,其中一列有 100000 行,每行包含一个长度相同的字符串
我想根据下面分隔的行将每一行分成多列,包括作为单独列的空白。
目前我正在尝试将 DBI 包与如下所示的代码一起使用:
我有一个火花数据框 TABLE1,其中一列有 100000 行,每行包含一个长度相同的字符串
我想根据下面分隔的行将每一行分成多列,包括作为单独列的空白。
目前我正在尝试将 DBI 包与如下所示的代码一起使用:
然而,这似乎不起作用。此外,即使它这样做了,它也只是返回一个 R 数据帧,我需要它在 spark 数据帧中工作。我正在寻找除 SQL 之外的替代建议,或者寻找适用于 spark 并返回解析的 Spark 数据帧的正确语法,然后我可以在该数据帧上执行 ML。有任何想法吗。
提前致谢。
r - SparklyR 安装问题(“延迟加载失败”)
在 Linux 服务器上安装 SparklyR 时遇到一些问题,使用相同的代码一直运行到昨天。已经尝试过安装/卸载 DBI、jsonlite 和 dplyr 的各种组合。
到目前为止,一切似乎都运行良好:
不确定这是否与3 月 8 日的 GitHub 提交有关,但加载早期版本似乎也无济于事。有任何想法吗?
r - Spark SQL 的 SparklyR 包装器:sqlContext.sql
我正在尝试为 SparklyR 的 SQL 函数编写一个包装器。我创建了以下功能:
然后我使用以下方法调用它:
但我收到以下错误:
任何建议或修复将不胜感激。
r - 为什么 ml_create_dummy_variables 不在 sparklyr 中显示新的虚拟变量列
我正在尝试在 sparklyr 中创建模型矩阵。有一个函数ml_create_dummy_variables()
可以一次为一个分类变量创建虚拟变量。据我所知,没有 model.matrix() 等效于一步创建模型矩阵。它很容易使用ml_create_dummy_variables()
,但我不明白为什么新的虚拟变量没有存储在 Spark 数据框中。
考虑这个例子:
现在我从 sparklyr 收到以下通知:
当我检查列数时,不会出现新的虚拟变量。
为什么会这样?另外,有没有一种简单的方法可以一步转换所有列?我使用超过 1000 个变量的数据集,所以我需要一种快速的方法来做到这一点。我试过创建一个循环,但这并没有做任何事情:
r - 根据列数据类型对 spark 数据帧(在 sparklyr 中)进行子集化的最佳方法是什么
我正在将一堆列转换为虚拟变量。我想从数据框中删除原始分类变量。我正在努力弄清楚如何在 sparklyr 中做到这一点。它在 dplyr 中很简单,但 dplyr 功能在 sparklyr 中不起作用。
例如:
首先创建一个火花数据框:
现在创建虚拟变量:
我可以简单地使用删除原始分类变量
但是,我实际使用的数据有 300 个分类变量。我需要一种快速的方法来确定哪些列是字符/因素。将这些列转换为虚拟变量后 - 然后我可以删除原始分类变量。我尝试了以下方法:
然后我收到以下错误:
我也试过:
但我得到:
关于如何做到这一点的任何想法?
r - 权限被拒绝 - sparklyr 中的 \tmp\hive
我正在尝试使用copy_to函数将 R 数据帧复制到 Spark 2.0.1,但它说
HDFS 上的根暂存目录:/tmp/hive 应该是可写的。当前权限是:rw-rw-rw-
我执行了 winutils.exe来更改权限,但我仍然得到相同的权限异常。
我尝试了该命令的其他变体,例如-
但没有任何效果。我仍然收到错误
r - 通过推断架构读取 csv 文件时出现 sparklyr 异常:double
我正在尝试使用spark_read_csv
函数将 csv 读入 Spark。我在推断架构时遇到异常,即我在设置时遇到异常infer_schema=TRUE
。
我收到以下异常:
错误:org.apache.spark.SparkException:作业因阶段失败而中止:阶段 90.0 中的任务 0 失败 1 次,最近一次失败:阶段 90.0 中丢失任务 0.0(TID 151,本地主机):java.text.ParseException:无法解析编号:“cr1_fd_dttm”在 java.text.NumberFormat.parse(NumberFormat.java:385) 在 org.apache.spark.sql.execution.datasources.csv.CSVTypeCast$$anonfun$castTo$4.apply$mcD$sp(CSVInferSchema .scala:259)
但是,当我尝试设置时infer_schema=FALSE
,正如预期的那样,所有内容都被读取为chr
类型。
这是列中数据的样子cr1_fd_dttm
:
有人可以帮助我吗?
谢谢
r - 在 sparklyr 中删除 NA 列
我有一个包含 75 列的数据框,其中 12 列具有所有 NA,有些具有 70% 的 NA。我想删除具有 >=70% NA 的列。
任何人都可以帮助我吗?我试过了
但我得到了例外:
错误:无法从 NULL 类的对象中检索 spark_connection
我也试过:
和
但我得到了例外
colSums(!is.na(df)) 中的错误:“x”必须是至少二维的数组