我在spark中有以下命令,
data = sqlContext.sql("select column1, column2, column3 from table_name")
words = sc.textFile("words.txt")
words.txt
有一组单词,data有三个字符串列,取自table_name
。
现在,只要words.txt
中每个单词的单词模式出现在三列数据中的任何一列中,我就希望过滤掉数据中的行(spark dataframe)。
例如,如果words.txt
有诸如gon
之类的单词,并且如果三列数据中的任何一列包含诸如bygone
、gone
等值,我希望过滤掉该行。
我尝试了以下方法:
data.filter(~data['column1'].like('%gon%') | data['column2'].like('%gon%') | data['column3'].like('%gon%')).toPandas()
这只适用于一个词。但是我想检查words.txt
中的所有单词并删除它。有办法做到这一点吗?
我对Pyspark是新手。任何建议都是有帮助的。
您可以从words.txt
中读取单词,并构建如下所示的regex模式:
(?s)^(?=.*word1)(?=.*word2)(?=.*word3)
等,其中(?s)
允许.
匹配任何符号,^
匹配字符串开始位置,然后每个(?=...)
lookahead要求字符串中存在每个单词。
因此,如果将regex放入rx
var中,它将如下所示:
data.filter(~data['column1'].rlike(rx) | data['column2'].rlike(rx) | data['column3'].rlike(rx)).toPandas()
我想根据RDD中的值从Cassandra查询一些数据。我的方法如下: 虽然Cassandra查询在Spark shell中工作,但当我在平面图中使用它时,它会引发异常: 我的理解是,我不能在另一个RDD内部产生一个RDD。 我在网络上找到的示例读取RDD中的整个Cassandra表并连接RDD(如下所示:https://cassandrastuff.wordpress.com/2014/07/07
我有一个csv,它具有以下结构:
我正在使用SOLRJ(与SOLR 7一起使用),我的索引为文档内容提供了一些名为content_eng、content_ita的字段...它还提供了一个包含文档完整路径的字段(由和处理)。 用户能够在content_xyz字段中进行搜索,这要归功于以下几行:final SolrQuery query=new SolrQuery();setQuery(searchedText);query.set(
在visual studio代码中选择所选单词的所有实例是否有任何技巧或扩展,以便在不搜索和替换的情况下编辑或删除这些实例,如升华文本中的ِAltF3
本文向大家介绍C ++中的按位筛选,包括了C ++中的按位筛选的使用技巧和注意事项,需要的朋友参考一下 在这个问题中,给我们一个数字N。我们的任务是使用按位筛选找到所有小于N的素数。 按位筛是Eratosthenes筛的优化版本,用于查找所有小于给定数的素数。 让我们举个例子来了解这个问题, 输入-N = 25 输出-2 3 5 7 11 13 17 19 23 按位筛子的工作方式与普通筛子相同。
问题内容: 我正在尝试在CRM 2011的报告中使用CRM CRMAFAF筛选器。但是我找不到有关如何执行此操作的任何示例。需要更改查询内容以过滤引号,还需要添加什么参数。 问题答案: 这是您可以查看的一个参考:http : //blogs.msdn.com/b/crm/archive/2009/03/06/microsoft-dynamics-crm-pre- filtering-tips.as