csv不能从glue中的scala作业中读取,但是可以用相同的代码从emr中的scala shell中读取

r1wp621o  于 2021-07-14  发布在  Spark
关注(0)|答案(0)|浏览(205)

因此,我在aws glue中编写了一个scala作业,并尝试将一些csv读入如下Dataframe:

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{DataFrame, Row, SparkSession}
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._

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

    val sc = new SparkContext(new SparkConf())
    val spark = SparkSession.builder.config(sc.getConf).getOrCreate()

    val sch=StructType(
        Array(
            StructField("col1", StringType, true),
            StructField("col2", DateType, true)
        )
    )

    val dataset=spark.read.option("sep", "\t").schema(sch).csv("s3://staging-data/my_dir/")

    dataset.show(40, truncate=false)

  }
}

这将输出冗长、特殊字符和“null”的混合。
但是,当我在aws emr中运行相同的代码时,使用sparkshell;我不面对这个问题。Dataframe以正确的数据正确显示。
注意:我已授予s3fullaccess访问粘附作业正在使用的iam角色。
我做错什么了?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题