如何在 Spark RDD 中比较不区分大小写的字符串?

2024-02-08

我有以下数据集

drug_name,num_prescriber,total_cost
AMBIEN,2,300
BENZTROPINE MESYLATE,1,1500
CHLORPROMAZINE,2,3000

想要从上面的数据集中找出 A 和 B 的数量以及标题。我使用以下代码来找出 A 的数量和 B 的数量。

from pyspark import SparkContext
from pyspark.sql import SparkSession

logFile = 'Sample.txt'
spark = SparkSession.builder.appName('GD App').getOrCreate()
logData = spark.read.text(logFile).cache()

numAs = logData.filter(logData.value.contains('a')).count()
numBs = logData.filter(logData.value.contains('b')).count()
print('{0} {1}'.format(numAs,numBs))

它返回的输出为1 1。我想在不区分大小写的情况下进行比较。我已尝试以下操作,但它返回错误为'Column' object is not callable

numAs = logData.filter((logData.value).tolower().contains('a')).count()
numBs = logData.filter((logData.value).tolower().contains('b')).count()

请帮帮我。


要转换为小写,您应该使用lower()函数(参见here http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.functions.lower) from pyspark.sql.functions.所以你可以尝试:

import pyspark.sql.functions as F

logData = spark.createDataFrame(
    [
     (0,'aB'),
     (1,'AaA'),
     (2,'bA'),
     (3,'bB')
    ],
    ('id', "value")
)
numAs = logData.filter(F.lower((logData.value)).contains('a')).count()

您提到“我正在使用以下代码来查找 A 的数量和 B 的数量。”请注意,如果您想计算某个字符的实际出现次数而不是包含该字符的行数,您可以执行以下操作:

def count_char_in_col(col: str, char: str):
    return F.length(F.regexp_replace(F.lower(F.col(col)), "[^" + char + "]", ""))

logData.select(count_char_in_col('value','a')).groupBy().sum().collect()[0][0]

在上面的例子中将返回5.

希望这可以帮助!

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

如何在 Spark RDD 中比较不区分大小写的字符串? 的相关文章

  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 在 Spark 中计算逻辑回归系数的标准误差

    我知道这个问题之前已经被问过here https stackoverflow com questions 37816701 calculating standard error of estimate wald chi square sta
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • NSKeyedArchiver archivedDataWithRootObject:

    NSKeyedArchiver archivedDataWithRootObject 的参数应该是我要保存的数组 还是转换为 NSData 的数组 裕二的回答是对的 但更准确地说 您的数组元素必须实现协议并将您自己的代码填充到方法 init
  • 如何呈现更小的视图控制器

    我想要以比屏幕更小的尺寸呈现视图控制器 vc2 如何在 Swift 3 中做到这一点 感谢帮助 这是我的代码 IBAction func leftButtonPressed sender UIButton let vc2 self stor
  • 调用定义的方法时 JavaScript“不是函数”错误

    这是我的代码 request xml function http request false http request new XMLHttpRequest if http request overrideMimeType http req
  • Xcode 6 GM - CLLocationManager

    我有一个使用 Xcode 5 制作的项目 我有一个 ViewController 我在其中使用 CLLocationManager 获取手机位置 我已经实现了这两个 void locationManager CLLocationManage
  • 是否可以使用h5py将大数据直接加载到numpy int8数组中?

    我有一个非常大的数据文件 1000 x 1400000 数组 其中包含整数 0 1 2 和 4 使用 h5py 将这些大数据加载到 numpy 数组中需要很长时间 因为我的内存 4GB 无法容纳这么多并且程序使用交换空间 由于数据中只有 4
  • R - (ggplot) 使 geom_step 跳跃为虚线

    我正在绘制离散 CDF 我有一些关于 geom step 的问题 但我没有通过使用 Google 找到这些问题 是否可以将代表跳跃的线段做成虚线 而不是更扎实地更好地展示正在发生的事情 是否可以比我更有效地添加 geom point 较少的
  • 命令绑定无法将“System.Reflection.RuntimeEventInfo”类型的对象强制转换为“System.Reflection.MethodInfo”类型

    当我通过 XAML 将按钮连接到命令时 出现运行时错误 System Windows Markup XamlParseException 在 System Windows Data Binding 上提供值引发异常 gt System In
  • 从反射获取字段的类名

    我在这件事上兜圈子 我有一个类 Person 例如 public class Person String name 现在 我想内省这个类实例并弄清楚类的名称声明为什么 所以 name String 或 java lang String 这是
  • Primeng 分页器在调用 API 后无法重置第 1 页

    我有两个函数来加载数据 初始化页面和搜索页面时 初始化页面时 数据显示为5页 我点击第3页 数据分页显示就OK了 之后 进入数据搜索 数据表重新加载 但页码没有重置为1 仍然是第3页 在 HTML 中
  • 第一次从 MVC 站点访问时,WCF 服务返回“请求的服务‘...’无法激活”

    我们有一个由 MVC3 网站访问的 WCF 服务 没有安全性 在开发人员计算机上 我们没有任何问题 但是当我们的 TeamCity 设置构建中央版本并将其部署在 IIS7 下时 我们第一次加载 MVC3 站点并且它访问 WCF 服务 服务调
  • 在 Delphi 中如何位反映一个字节?

    在Delphi中是否有一种简单的方法来位反映字节变量 以便最高有效位 MSB 获得最低有效位 LSB 反之亦然 在代码中你可以这样做 function ReverseBits b Byte Byte var i Integer begin
  • 具有派生接口的 C# 接口实现

    在下面的示例中 类 SomeClass 没有实现 ISomeInterface 为什么我不能通过传递一个更派生的接口来实现这一点 该接口确实实现了基本要求 无论传递什么实例 它仍然会实现基础 我是否遗漏了什么 namespace Test
  • 搜索标签,然后将标签之间的文本保存为变量

    我对 Java 很陌生 但是我如何在文件中搜索标签 然后标签之间的所有内容 如文本字符串 将被分配给一个变量 例如 我有 但后来我想将字符串 THE TITLE 保存到一个名为 title1 的变量或其他变量中 我应该怎样做呢 谢谢 如果你
  • 结构赋值是否保证填充也相等

    假设我有一个包含 2 个字段的结构 并且我的 C 实现在这些字段之间也有一些填充 如果我创建结构体的两个变量并将一个变量分配给另一个变量 是否可以保证填充相等 我知道对于大多数编译器来说都是如此 因为它们只是调用 memcpy 但我想知道标
  • DB.eval() 与 Mongo Java 驱动程序

    我准备了一些在 Mongo 上执行的脚本 它按照命令行的预期工作 mongo 127 0 0 1 27017 dbName script js 但是当我尝试在 java scala 代码中移动它时 它不起作用 db eval scriptC
  • SQL Server 中 mysql“LIMIT”子句的等效语法是什么

    SQL Server 中 MySQL LIMIT 子句的等效语法是什么 我想用它来对我的结果进行分页 想要显示记录5到10 最接近的是 TOP Select top 5 from tablename 您可以获得一个范围 第 5 10 行 S
  • SAPUI5 路由配置中“controlAggregation”的含义是什么?

    我真的不明白下面的属性 controlAggregation 对于路由 SAPUI5 应用程序有何作用 不存在具有该 id 的元素 我在此处找到的演示应用程序中的任何位置都找不到对 页面 的任何引用 SAPUI5路由演示 https sap
  • java indexof(String str) 方法复杂性[重复]

    这个问题在这里已经有答案了 可能的重复 String indexof 函数调用的成本 复杂性是多少 https stackoverflow com questions 3562919 what is the cost complexity
  • 使用未声明的类型“PHAsset”BSImagePicker

    我在 swift 中从 CocoaPods 导入了一个模块 我做了所有需要做的事情 而且它也有效 因为模块已成功导入 我现在想测试 BSimagepicker 的一些演示脚本 但它显示未声明的类型 PHAsset 我需要做的是选择不同的图像
  • 如何在 Spark RDD 中比较不区分大小写的字符串?

    我有以下数据集 drug name num prescriber total cost AMBIEN 2 300 BENZTROPINE MESYLATE 1 1500 CHLORPROMAZINE 2 3000 想要从上面的数据集中找出