您可以从命名管道加载 Apache Spark 数据集吗?

Wik*_*kyd 5 apache-spark apache-spark-sql apache-spark-dataset

我目前使用 XUbuntu 16.04、Apache Spark 2.1.1、IntelliJ 和 Scala 2.11.8

我试图将一些 CSV 格式的简单文本数据加载到 Apache Spark 数据集中,但我没有使用常规文本文件,而是将数据转储到命名管道中,然后我想将该数据直接读入数据集中。如果数据是常规文件,它可以完美地工作,但如果它来自命名管道,则完全相同的数据不起作用。我的 Scala 代码非常简单,如下所示:

import org.apache.spark.sql.SparkSession

object PipeTest {

  def main(args: Array[String]): Unit = {

  val spark = SparkSession
    .builder()
    .appName("PipeTest")
    .master("local")
    .getOrCreate()

     // Read data in from a text file and input to a DataSet    
    var dataFromTxt = spark.read.csv("csvData.txt")
    dataFromTxt.show()


     // Read data in from a pipe and input to a DataSet
    var dataFromPipe = spark.read.csv("csvData.pipe")
    dataFromPipe.show()
  }
}
Run Code Online (Sandbox Code Playgroud)

第一个代码部分从常规文件加载 csv 数据并且工作正常。第二个代码部分失败并出现以下错误:

线程“main”中的异常 java.io.IOException:访问文件时出错:/home/andersonlab/test/csvData.pipe

任何人都知道您将如何将命名管道与 Spark Datasets 一起使用并获得类似上述内容的工作?