为什么 dropna() 不起作用?

2023-12-23

系统:Cloudera Quickstart VM 5.4 上的 Spark 1.3.0(Anaconda Python 版本)

这是一个 Spark 数据框:

from pyspark.sql import SQLContext
from pyspark.sql.types import *
sqlContext = SQLContext(sc)

data = sc.parallelize([('Foo',41,'US',3),
                       ('Foo',39,'UK',1),
                       ('Bar',57,'CA',2),
                       ('Bar',72,'CA',3),
                       ('Baz',22,'US',6),
                       (None,75,None,7)])

schema = StructType([StructField('Name', StringType(), True),
                     StructField('Age', IntegerType(), True),
                     StructField('Country', StringType(), True),
                     StructField('Score', IntegerType(), True)])

df = sqlContext.createDataFrame(data,schema)

data.show()

Name Age Country Score
Foo  41  US      3    
Foo  39  UK      1    
Bar  57  CA      2    
Bar  72  CA      3    
Baz  22  US      6    
null 75  null    7 

然而这些都不起作用!

df.dropna()
df.na.drop()

我收到这条消息:

>>> df.show()
Name Age Country Score
Foo  41  US      3    
Foo  39  UK      1    
Bar  57  CA      2    
Bar  72  CA      3    
Baz  22  US      6    
null 75  null    7    
>>> df.dropna().show()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/spark/python/pyspark/sql/dataframe.py", line 580, in __getattr__
    jc = self._jdf.apply(name)
  File "/usr/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py", line 538, in __call__
  File "/usr/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o50.apply.
: org.apache.spark.sql.AnalysisException: Cannot resolve column name "dropna" among (Name, Age, Country, Score);
    at org.apache.spark.sql.DataFrame$$anonfun$resolve$1.apply(DataFrame.scala:162)
    at org.apache.spark.sql.DataFrame$$anonfun$resolve$1.apply(DataFrame.scala:162)
    at scala.Option.getOrElse(Option.scala:120)
    at org.apache.spark.sql.DataFrame.resolve(DataFrame.scala:161)
    at org.apache.spark.sql.DataFrame.col(DataFrame.scala:436)
    at org.apache.spark.sql.DataFrame.apply(DataFrame.scala:426)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379)
    at py4j.Gateway.invoke(Gateway.java:259)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:207)
    at java.lang.Thread.run(Thread.java:745)

还有其他人遇到过这个问题吗?解决方法是什么? Pyspark 似乎认为我正在寻找一个名为“na”的专栏。任何帮助,将不胜感激!


tl;dr方法na and dropna仅从 Spark 1.3.1 起可用。

你犯过的几个错误:

  1. data = sc.parallelize([....('',75,'', 7 )]),您打算使用''代表None,但是,它只是一个 String 而不是 null

  2. na and dropna都是 dataFrame 类上的方法,因此,您应该用您的df.

可运行代码:

data = sc.parallelize([('Foo',41,'US',3),
                       ('Foo',39,'UK',1),
                       ('Bar',57,'CA',2),
                       ('Bar',72,'CA',3),
                       ('Baz',22,'US',6),
                       (None, 75, None, 7)])

schema = StructType([StructField('Name', StringType(), True),
                 StructField('Age', IntegerType(), True),
                 StructField('Country', StringType(), True),
                 StructField('Score', IntegerType(), True)])

df = sqlContext.createDataFrame(data,schema)

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

为什么 dropna() 不起作用? 的相关文章

随机推荐

  • IE 中的 moz-border-radius,moz-box-shadow

    我正在使用 moz border radius webkit border top left radius 将圆角 div 添加到我的网站 这些在 Mozilla chrome 和 safari 中工作得很好 但像往常一样 Internet
  • 具有接口继承的 Winforms 数据绑定

    在我因为这个问题而更改应用程序的域之前 我需要有人确认我所看到的内容 问题是 当针对相互继承的接口进行数据绑定时 您无法看到基本接口上的属性 我正在开发一个使用数据绑定的 WinForms 应用程序 这是在 net3 5中 不 我不能使用w
  • 如何在命令行上提供非 Base 64 编码的密钥

    关于AWS S3工具 同步 和 客户提供的加密密钥 它说here http docs aws amazon com cli latest reference s3 sync html sse c key 字符串 客户提供的加密密钥 用于服务
  • History.pushState 之后前进按钮不起作用

    我已经找到了如何修复后退按钮 但前进按钮仍然无法修复 网址会更改 但页面不会重新加载 这就是我正在使用的 anchor wrapper css position relative slanted css top 0 Do something
  • PHP 错误:警告:无法修改标头信息 - [重复] 已发送标头

    这个问题在这里已经有答案了 您好 我正在用 PHP 编写一个简单的邮件脚本 我发现的每个人都说它可能是前面的空白 但正如你所看到的 我在我的代码中找不到类似互联网上解决方案的内容 错误说 输出从 customers e e 5 httpd
  • 运行时控制台中的核心数据信息和错误

    我在运行时在控制台中遇到了以下消息 我不知道为什么 我到处搜索过 似乎没有人遇到这个 信息 获取响应无法打开文件 Users userName Library Application Support iPhone Simulator 7 0
  • 如何在 C# 中生成唯一的文件名

    我已经实现了一种算法 将为保存在硬盘驱动器上的文件生成唯一的名称 我正在追加DateTime 小时 分钟 秒和毫秒但它仍然会生成重复的文件名 因为我一次上传多个文件 为要存储在硬盘驱动器上的文件生成唯一名称以便没有两个文件相同的最佳解决方案
  • powershell的并行foreach最多使用5个线程吗?

    The throttlelimit的参数foreach parallel可以控制执行脚本时使用多少个进程 但即使我设置了 我也不能有超过5个进程throttlelimit大于5 该脚本在多个 powershell 进程中执行 所以我检查脚本
  • 使用实体框架进行软删除(是历史列)

    我正在使用一个数据库 设计者决定用 IsHistorical 位列标记每个表 没有考虑正确的建模 并且我无法更改架构 在开发与导航属性交互的 CRUD 屏幕时 这会造成一些摩擦 我不能简单地获取一个产品 然后编辑它的 EntityColle
  • 使用 XMLHttpRequest Level 2 模拟文件表单提交

    在我当前的页面上 我使用带有输入元素的旧文件上传 然而 现在我已经从这个非常好的系列文章中实现了拖放 http www sitepoint com html5 file drag and drop http www sitepoint co
  • macOS Catalina 中禁用 SIP 的只读文件系统 [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我正在尝试将一些文件从路径复制到我的库路径 usr lib 我正在尝试使用 sudo cp my file usr lib 我得到了这
  • 工具栏搜索建议主题

    我正在尝试将搜索建议更改为 浅色主题 我正在使用 appcompat v7 22 2 0 库并阅读有关新功能 https philio me styling the searchview with appcompat v21 用于自定义搜索
  • 猪拉丁法翻译

    尝试用 ruby 编写方法来翻译 pig latin 中的字符串 规则 规则 1 如果单词以元音开头 则在单词末尾添加 ay 音 规则2 如果单词以辅音开头 则将其移动到单词的末尾 然后在单词的末尾添加 ay 音 并且当单词以2个辅音开头时
  • Flink 中是否可以实现具有多个工作线程的全局状态?

    在 Flink 文档中 我到处都看到状态对于映射函数和工作线程来说是独立的 这在独立方法中似乎很强大 但是如果 Flink 在集群中运行怎么办 Flink 能否处理所有工作人员都可以添加数据并查询数据的全局状态 来自 Flink 关于状态的
  • 在 spring-boot 2.6.2 中,无法从类路径初始化 Logback 日志记录:logback-spring.groovy

    我将 spring boot 2 5 6 的 spring boot 应用程序迁移到 spring boot 2 6 2 但从那时起 启动告诉 java lang IllegalStateException 无法从类路径初始化 Logbac
  • 列出可供下载的文件 - 文件存储在仅应用程序可访问的位置

    我有一组 pdf 文件存储在只能由应用程序访问的位置 因此这些文件无法通过 http 直接访问 文件路径由数据库存储 当用户选择下载文件时 将执行以下代码 Response ContentType Application pdf Respo
  • 调试时无法查看变量值

    我正在尝试调试我正在处理的当前应用程序的部分 但是当我尝试检查属性 变量的值时 我收到错误 Cannot evaluate expression because a thread is stopped at a point where ga
  • Angular 5无法匹配延迟加载模块的命名出口上的任何路由[重复]

    这个问题在这里已经有答案了 我的根模块的路线是这样的 RouterModule forRoot path redirectTo management portal pathMatch full path management portal
  • 忽略绑定初始化

    最初的问题来自于关于折线的个人项目Xamarin Forms Map https github com Emixam23 XamarinByEmixam23 tree master Detailed 20Part Controls Map
  • 为什么 dropna() 不起作用?

    系统 Cloudera Quickstart VM 5 4 上的 Spark 1 3 0 Anaconda Python 版本 这是一个 Spark 数据框 from pyspark sql import SQLContext from p