如何使用 SparkR 计算数据框每列的缺失值数量?

2024-04-22

我正在处理一个 2.5 GB 的 csv 文件,其中包含 110 万行和 1000 个似乎稀疏的数字列。我目前在具有 8 GB RAM 的 1 核 VM 上执行 Spark,数据已分为 16 个分区。

我尝试了类似以下的方法,但需要很长时间:

ldf <- dapplyCollect(
     df,
     function(df.partition) {
       apply(df.partition, 2, function(col) {sum(is.na(col))})
     })

这是一种方法,使用sparklyr and dplyr。为了提供可重现的示例,我使用的航班数据来自nycflights13包(19 个变量的 336776 个观测值)

library(nycflights13)
library(sparklyr)
library(dplyr)
sc <- sparklyr::spark_connect(master = "local", version = "2.1.0", hadoop_version = "2.7")

    flights_spark <- sparklyr::copy_to(sc, flights)
    src_tbls(sc)

  flights_spark %>% 
    dplyr::mutate_all(is.na) %>%
    dplyr::mutate_all(as.numeric) %>%
    dplyr::summarise_all(sum) %>%
    dplyr::collect()

你得到结果

> collect(flights_spark_isna_count)
# A tibble: 1 × 19
   year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay carrier flight tailnum origin  dest air_time
  <dbl> <dbl> <dbl>    <dbl>          <dbl>     <dbl>    <dbl>          <dbl>     <dbl>   <dbl>  <dbl>   <dbl>  <dbl> <dbl>    <dbl>
1     0     0     0     8255              0      8255     8713              0      9430       0      0    2512      0     0     9430
# ... with 4 more variables: distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dbl>

在我的旧笔记本电脑中,所有这些代码大约花费了 30 秒(即包括启动 Spark 会话、将数据读入 Spark,然后计算 NA;我认为最后一步花费了不到 10 秒)。

当然,您的数据集更大,但也许它可以工作。 (我也在我正在处理的更大的数据集中尝试过,大约有 200 万个观测值和 146 个变量,而且只需要几分钟)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SparkR 计算数据框每列的缺失值数量? 的相关文章

  • 在 Spark 中将日期转换为月底

    我有一个 Spark DataFrame 如下所示 Create DataFrame df lt data frame name c Thomas William Bill John dates c 2017 01 05 2017 02 2
  • RStudio 中的 SparkR.init(master="local") 中的 SparkR 错误

    我已将 Spark 发行版中的 SparkR 包安装到 R 库中 我可以调用以下命令 它似乎工作正常 library SparkR 但是 当我尝试使用以下代码获取 Spark 上下文时 sc lt sparkR init master lo
  • Sparklyr:如何根据列将 Spark 表居中?

    我有一个 Spark 表 simx x0 num 1 00 2 00 3 00 x1 num 2 00 3 00 4 00 x788 num 2 00 3 00 4 00 和一个名为simX tbl在连接到此的 R 环境中simx tabl
  • 如何使用 Jupyter + SparkR 和自定义 R 安装

    我正在使用 Dockerized 映像和 Jupyter Notebook 以及 SparkR 内核 当我创建 SparkR 笔记本时 它使用 Microsoft R 3 3 2 安装 而不是普通的 CRAN R 安装 3 2 3 我使用的
  • 通过 RStudio 加载 com.databricks.spark.csv

    我已经安装了Spark 1 4 0 我还安装了它的 R 包 SparkR 并且可以通过 Spark shell 和 RStudio 使用它 但是 有一个我无法解决的差异 启动 SparkR shell 时 bin sparkR master
  • SparkR显示汉字错误

    我是SparkR新手 这几天遇到一个问题 将包含中文字符的文件转换成SparkR后 它不再正确显示 像这样 city c 北京 上海 杭州 A lt as data frame city A city 1 北京 2 上海 3 杭州 然后 我
  • SparkR 收集方法因 Java 堆空间内存不足而崩溃

    使用 SparkR 我尝试使用 PoC 来收集我从包含大约 4M 行的文本文件创建的 RDD 我的 Spark 集群在 Google Cloud 中运行 部署了 bdutil 由 1 个主节点和 2 个工作节点组成 每个节点有 15GB R
  • 使用sparkr时我应该在工作节点上预安装cran r包吗

    我想在 cran 上使用 r 包 例如forecast等与sparkr并遇到以下两个问题 我应该在工作节点上预安装所有这些软件包吗 但是当我读spark的源码时这个文件 似乎spark会自动压缩包并通过 jars或 packages将它们分
  • 如何最好地处理将大型本地数据帧转换为 SparkR 数据帧?

    如何有效地将大型本地数据帧转换为 SparkR 数据帧 在我的本地开发机器上 当我尝试将其转换为 SparkR 数据帧时 大约 650MB 的本地数据帧很快就会超过可用内存 并且我有一台具有 40GB RAM 的开发机器 library r
  • 无法在 RStudio 中启动 SparkR

    经过漫长而困难的 SparkR 安装过程后 我遇到了启动 SparkR 的新问题 我的设置 R 3 2 0 RStudio 0 98 1103 Rtools 3 3 Spark 1 4 0 Java Version 8 SparkR 1 4
  • 使用 install_github 安装 SparkR 包时出错

    我正在尝试使用SparkRR 中的包 我有所有依赖包 例如devtools Rtools exe etc 当我尝试以下命令时 install github amplab extras SparkR pkg subdir pkg 我收到以下错
  • SparkR 与 Sparklyr [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人对 SparkR 与 Sparklyr 的优点 缺点有概述吗 谷歌没有给出任何令人满意的结果 而且两者看起来相当相似 尝试两者 S
  • 在 databricks 笔记本中使用多个 Spark 连接

    我想使用 Spark 和 Sparklyr 连接到单个 databricks R 笔记本中的两个数据库表 sc one lt spark connect method databricks tbl change db sc one firs
  • 如何在sparkR中创建一个新的DataFrame

    在sparkR中我有data作为数据框 我可以附加一个条目data像这样 newdata lt filter data data column 1 我怎样才能附加多个 假设我想附加向量中的所有元素list lt c 1 6 10 11 14
  • 如何在sparkR中绑定两个数据框列?

    如何在spark 1 4的SparkR中绑定两列dataframe 蒂亚 阿伦 没有办法做到这一点 这是一个关于scala中的spark 1 3 的问题 能够做到这一点的唯一方法是使用某种 row numbering 因为这样您就可以加入
  • 如何使用 SparkR 计算数据框每列的缺失值数量?

    我正在处理一个 2 5 GB 的 csv 文件 其中包含 110 万行和 1000 个似乎稀疏的数字列 我目前在具有 8 GB RAM 的 1 核 VM 上执行 Spark 数据已分为 16 个分区 我尝试了类似以下的方法 但需要很长时间
  • 获取 Spark 中组的最后一个值

    我有一个 SparkR DataFrame 如下所示 Create R data frame custId lt c rep 1001 5 rep 1002 3 1003 date lt c 2013 08 01 2014 01 01 20
  • 在 SparkR 中使用应用函数

    我目前正在尝试使用sparkR版本1 5 1来实现一些功能 我见过较旧的 版本 1 3 示例 人们在 DataFrames 上使用 apply 函数 但看起来这不再直接可用 例子 x c 1 2 xDF R data frame x col
  • SparkR 和 Sparklyr 之间导入 parquet 文件所需的时间差异

    我正在使用 databricks 导入镶木地板文件SparkR and sparklyr data1 SparkR read df dbfs data202007 source parquet header TRUE inferSchema
  • 如何在SparkR中进行map和reduce

    如何使用 SparkR 进行映射和归约操作 我能找到的只是有关 SQL 查询的内容 有没有办法使用 SQL 进行映射和减少 See 写入从 SparkR map 返回的 R 数据帧 https stackoverflow com quest

随机推荐

  • 禁用 Google 应用测量调试日志记录

    在 Xcode 7 2 上 如何禁用这些调试 应用程序测量紧急显示 2016 01 07 11 52 53 085 MyApp 1457
  • Gradle 将工件部署到本地目录内的 Maven 存储库

    Gradle 与 Maven 的等价物是什么
  • 如何允许Java程序一次只运行一个实例?

    我需要防止用户多次启动我的 Java 应用程序 WebStart Swing 应用程序 因此 如果应用程序已经在运行 则不应再次启动它或显示警告 再次关闭 有没有一些方便的方法来实现这一目标 我考虑过阻止端口或将某些内容写入文件 但希望您可
  • EntityFramework 如何覆盖属性

    我刚刚开始在 VS2010 中使用 EF 那东西真是太神奇了 坦白说我有些不明白 例如 我有带有属性的 EntityType 它们是从数据库结构生成的 现在 我只需在代码中重写该属性 我不需要将属性的值保存回数据库 但每次从数据库读取它时
  • 在 React 中渲染 Three.js 元素?

    我正在尝试制作一个渲染 Three js 场景的 React 组件 但是 每当我尝试安装组件而不是看到正在渲染的任何类型的场景时 我只看到文本 object HTMLCanvasElement 正在显示 这是我的组件 import Reac
  • 获取DLL函数的内存地址

    我想知道是否有可能 使用 C 和 WindowsAPI 是否有一个函数可以让我获得 dll 中函数的 32 位 我认为 内存地址 例如 如何获取 kernel32 dll 中 Beep 的 32 位 xxxxxxxx 地址 其次 如果我在汇
  • Symfony2:在实体类中获取 security.context

    是否可以得到security context在实体类中 我知道以下不起作用 我不知道如何实施 user part Set createdAt ORM PrePersist public function setCreatedAt user
  • 使用 Pyparse 解析多个项目并将其分组在一起

    这是建立在构建一个简单的解析器 能够使用 PyParse 解析不同的日期格式 https stackoverflow com questions 28113532 build a simple parser that is able to
  • 如何检测元素是否已滚动但仅滚动一次?

    我正在尝试检测某个元素是否已滚出并完成了以下代码 window bind scroll function var btn intro div summary a href top if window scrollTop gt btn off
  • Sqlite - 降级时

    最近我更新了我的android游戏 编辑sqlite数据库在我的表中添加新字段 更新后 我收到4个崩溃报告 其中3个来自同一设备 三星Galaxy S4 android database sqlite SQLiteException 无法降
  • JQuery 对话框在关闭时冻结

    termSheetPrinted dialog autoOpen false resizable true height 800 width 950 position center title Term Sheet close functi
  • 在 Spark SQL 中将结构转换为映射

    我正在尝试转换一个数据集 该数据集声明一列具有特定的struct类型 例如struct
  • React 中的 Map 函数(错误:TypeError:e.map 不是函数)

    我想从道具渲染项目 我可以使用初始状态来完成 但不能使用服务器的响应来完成 我的渲染函数 const data this props return div data map item index gt div span item id sp
  • 修复颠覆中犯下的错误

    这似乎是人们可能想要用颠覆做的最基本的事情之一 但我使用版本控制系统的时间并不长 不知怎的 我似乎无法弄清楚这一点 而且我不知道在哪里svn文档看看 基本上 修订版 167 工作得很好 但我犯了一个错误 并将其提交为修订版 168 而且我不
  • 无法在 mac osx 上的 QT 中创建新项目

    过去几天我一直坚持这个问题 我已经安装了 QT 4 8 并且也安装了库 但是当我开始创建一个新项目时 我只能选择使用 CMake 创建一个普通的 C 项目 我没有使用自动 qmake 的选项 我不知道为什么 如果有人可以帮忙 我们将不胜感激
  • Haskell 中的 Futamura 投影的证明

    我读了 Dan Piponi 的优秀博客文章二村博士的三个投影 http blog sigfpe com 2009 05 three projections of doctor futamura html 在文章的最后 他有一个附录 其中包
  • 使用实体管理器时,没有为该名称定义查询

    我有以下实体 package com server models Entity Table name users NamedQueries NamedQuery name User QUERY FIND USER query SELECT
  • 如何使用 PyQt5 在 QWidget 上设置 numpy 数组图像

    我正在将相机中的图像作为 numpy 数组读取 我的目标是将其放入 pyqt5 的 Qwidget 中并在我的 mainwindow gui 程序上打印 但我收到以下错误 TypeError QPixmap argument 1 has u
  • Font Awesome 图标不能用作链接

    我的字体很棒的图标没有链接到我在 a 标签上设置 href 的位置 事实上 当我检查它们时 a 标签上没有 href 我有一些演示代码供您查看 但是在演示代码中 它在检查时确实显示了 href 只是没有链接到页面 也许如果修复了此代码 它就
  • 如何使用 SparkR 计算数据框每列的缺失值数量?

    我正在处理一个 2 5 GB 的 csv 文件 其中包含 110 万行和 1000 个似乎稀疏的数字列 我目前在具有 8 GB RAM 的 1 核 VM 上执行 Spark 数据已分为 16 个分区 我尝试了类似以下的方法 但需要很长时间