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

Gowdhaman008

我有以下数据集

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

希望从DataSet上方查找标头中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()函数(请参见此处),因此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

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何比较不区分大小写的字符串?

如何比较不区分大小写的字符串

如何比较不区分大小写和不区分重音的字符串

如何区分大小写比较字符串?

如何进行不区分大小写的字符串比较?

如何进行不区分大小写的字符串比较?

比较未知对象类型时,如何确保字符串不区分大小写?

实体框架核心Cosmos Db-如何比较不区分大小写的字符串?

如何使字符串替换不区分大小写

如何使字符串不区分大小写

如何在Java中比较忽略大小写的字符串

如何制作一个函数来比较字符串而不区分大小写,不使用 strcmpi()

字符串比较时如何将Sqlite3设置为不区分大小写?

如何构造正则表达式以比较Shell脚本中不区分大小写的字符串?

如何在MySQL上进行SQL区分大小写的字符串比较?

如何在不区分大小写的情况下在Java中拆分字符串?

如何在Java中替换不区分大小写的文字子字符串

如何在不区分大小写的情况下在mongodb中查询字符串?

如何在angularjs中使查询字符串值不区分大小写?

如何在弹性搜索中查询不区分大小写的字符串

如何在linq中比较两个不区分大小写的复杂对象

如何使角度$ filter过滤区分大小写的字符串比较器

如何在不区分大小写的情况下匹配字符串中的子字符串

如何在带有嵌入式C#的Blazor / Razor页面中进行不区分大小写的字符串比较?

如何以不区分大小写的方式制作最新的Attoparsec匹配字符串?

如何使Array。在字符串数组上不区分大小写?

如何使用jsr310 DateTimeFormatter解析不区分大小写的字符串?

Rails + ActiveRecord + Postgres:如何匹配不区分大小写的子字符串?

如何读取不区分大小写的列名pandas字符串