Scala 将FASTQ文件读入Spark数据帧
我正在尝试将FASTQ文件读入Spark数据帧。我有一些困难,因为FASTQ是一种多行格式 例如: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
@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格式允许将序列和质量包装在多行中。不过,我从未遇到过这种情况。