用于在DSX中读取aws s3存储的Spark Scala代码

时间:2017-09-25 16:32:47

标签: scala data-science-experience

有关如何使用scala读取aws s3的任何想法。我试过这个链接

https://www.cloudera.com/documentation/enterprise/5-5-x/topics/spark_s3.html

但无法让它发挥作用。我可以在数据块中使用相同的但是使用dsx它不能正常工作等。

IBM已在此处记录了python的步骤,但没有记录scala的步骤 - https://datascience.ibm.com/blog/use-ibm-data-science-experience-to-read-and-write-data-stored-on-amazon-s3/

spark.sparkContext.hadoopConfiguration.set(" fs.s3n.impl"" org.apache.hadoop.fs.s3native.NativeS3FileSystem&#34) spark.sparkContext.hadoopConfiguration.set(" fs.s3n.awsAccessKeyId"," xyz") spark.sparkContext.hadoopConfiguration.set(" fs.s3n.awsSecretAccessKey"," abc")

val df_data_1 = spark.read.format(" csv")。option(" header"," true")。load(" s3a ://defg/retail-data/by-day/*.csv") df_data_1.take(5)

1 个答案:

答案 0 :(得分:2)

不确定使用native(s3n)vs s3a之间是否存在任何差异。 但s3a工作正常。

import org.apache.spark.sql.SparkSession

val spark = SparkSession.
    builder().
    getOrCreate()


val hconf = spark.sparkContext.hadoopConfiguration
hconf.set("fs.s3a.access.key", "XXXXXXXXX")  
hconf.set("fs.s3a.secret.key", "XXXXXXXXX") 


val dfData1 = spark.
    read.format("org.apache.spark.sql.execution.datasources.csv.CSVFileFormat").
    option("header", "true").
    option("inferSchema", "true").
    load("s3a://charlesbuckets31/users.csv")
dfData1.show(5)

Output

谢谢, 查尔斯。