Scala 将FASTQ文件读入Spark数据帧

Scala 将FASTQ文件读入Spark数据帧,scala,apache-spark,apache-spark-sql,bioinformatics,fastq,Scala,Apache Spark,Apache Spark Sql,Bioinformatics,Fastq,我正在尝试将FASTQ文件读入Spark数据帧。我有一些困难,因为FASTQ是一种多行格式 例如: @seq1 AGTCAGTCGAC + ?@@FFBFFDDH @序号2 CCAGCGTCCG + ?88ADA?BDF8 有没有办法在Spark数据框中获取这些数据 +-------------+-------------+------------+ |标识符|序列|质量| +-------------+-------------+------------+ |seq1 | AGTCAGTCG

我正在尝试将FASTQ文件读入Spark数据帧。我有一些困难,因为FASTQ是一种多行格式

例如:

@seq1
AGTCAGTCGAC
+
?@@FFBFFDDH
@序号2
CCAGCGTCCG
+
?88ADA?BDF8
有没有办法在Spark数据框中获取这些数据

+-------------+-------------+------------+
|标识符|序列|质量|
+-------------+-------------+------------+
|seq1 | AGTCAGTCGAC |?@@FFBFFDDH|
|seq2 | CCAGCGTCCG |?88ADA?BDF8|
+-------------+-------------+------------+
谢谢你抽出时间

我想滑一下

import org.apache.spark.mllib.rdd.RDDFunctions._

spark.createDataset(sc.textFile(path).sliding(4, 4).map {
  case Array(id, seq, _, qual) => (id, seq, qual)
}).toDF("identifier", "sequence", "quality")


// +----------+-----------+-----------+
// |identifier|   sequence|    quality|
// +----------+-----------+-----------+
// |     @seq1|AGTCAGTCGAC|?@@FFBFFDDH|
// |     @seq2|CCAGCGTCTCG|?88ADA?BDF8|
// +----------+-----------+-----------+

请注意,理论上,fastq格式允许将序列和质量包装在多行中。不过,我从未遇到过这种情况。