繁体   English   中英

Spark在csv文件python的所有行之间找到特定的字符串

[英]Spark Find a particular string between all lines of a csv file python

我正在使用pyspark,并且有一个很大的csv文件。 CSV文件包含多行

<ABCosmswkmwPQR>
<ABCasdfasdfadsPQR>
 ...
 ...

我需要遍历每一行,并在其中的特定字符串之间找到文本。 我正在使用正则表达式来做到这一点

text_file = sc.textFile("file:///path/subset.tsv")
s = text_file.first()
conf = SparkConf().setAppName('MyFirstStandaloneApp')
links = re.findall(r'ABC(.*?)\PQR', s)


sc = SparkContext(conf=conf)

但是我只能在第一行执行此操作。 我该如何处理该行的所有文件。 我需要逐行迭代并将匹配的正则表达式的输出写入列表(如果它适合内存或文件)。

我已经使用sparkcontext打开了文件,我必须做同样的事情,因为我必须从HDFS中读取文件。

尝试这样的事情:

read_lines = open("file.csv", "r")
for line in read_lines:
    #if line matches regex:
        #do something

read_lines读取整个文件,并且for循环将循环文件中的每一行。 您只需要插入正则表达式代码即可。

您可以使用regexp_extract从模块pyspark.sql.functions 如果您的文件是temp.csv

spark.createDataFrame(sc.textFile("temp.csv"), schema=StringType()).
                        select(regexp_extract(regexpattern, col, idx) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM