Spark Scala代码来读取DSX中的aws s3存储
任何有关如何使用scala读取aws s3的想法。我试过这个链接Spark Scala代码来读取DSX中的aws s3存储
https://www.cloudera.com/documentation/enterprise/5-5-x/topics/spark_s3.html
,但不能得到它的工作。我可以在数据砖头这样做相同,但与DSX它不工作等
IBM已经证明了蟒蛇在这里,但没有一个步骤斯卡拉 - 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“) 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)
不知道使用本机(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)
感谢, 查尔斯。
S3n和S3a之间的区别是显着的,因为在“s3a是和将被维护”; s3n是它的前身。顺便说一句,模式推理意味着一次扫描数据只是为了计算出模式,另一次是为了读取数据。最好在代码中声明模式 –
你想使用火花从s3读?如果是的话,更新你的标题和标签。同时发布你写的代码不起作用 – prayagupd