在Spark 1.6中读取逗号分隔的文本文件

时间:2019-09-20 10:32:28

标签: scala apache-spark

我有一个类似于下面的文本文件

20190920

123456789,6325,NN5555,123,4635,890,C,9

985632465,6467,KK6666,654,9780,636,B,8

258063464,6754,MM777,789,9461,895,N,5

我正在使用带有scala的spark 1.6来读取此文本文件

val df = sqlcontext.read.option("com.databricks.spark.csv")
              .option("header","false").option("inferSchema","false").load(path)

df.show()

当我使用以上命令读取它时,它仅读取第一列。有什么要添加的内容来读取具有所有列值的文件。

我得到的输出:

20190920

123456789

985632465

258063464

3

1 个答案:

答案 0 :(得分:1)

在这种情况下,您应该提供架构,因此您的代码将如下所示

val mySchema = StructType(
  List(
    StructField("col1", StringType, true),
    StructField("col2", StringType, true),
    // and other columns ...
  )
)

val df = sqlcontext.read
.schema(mySchema)
.option("com.databricks.spark.csv")
.option("header","false")
.option("inferSchema","false")
.load(path)