[英]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.