利用pyspark 讀取 S3上資料
阿新 • • 發佈:2018-11-04
spark = SparkSession.builder.master('local').appName("hxy_test_script").getOrCreate() sc = spark.sparkContext # s3環境 sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", 你的s3ID-key) sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", 你的s3SECRET-key) sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3.cn-north-1.amazonaws.com.cn") rdd_data = sc.wholetextFile("s3a://要讀的bucket_name/text/xxx.txt") # 舉例的,實際情況看自己路徑 print (rdd_data.take(10))
注意:以上只是程式碼層面,但是執行會有問題,因為spark讀取s3檔案,
必須要有aws涉及到的兩個依賴包:aws-java-sdk-1.7.4.jar,hadoop-aws-2.7.3.jar
當專案裡有這兩個包了後,提交spark採用如下就可以了:
spark-submit --jars aws-java-sdk-1.7.4.jar,hadoop-aws-2.7.3.jar --master local test_extract_model_spark.py
ps:我的是本地spark,伺服器上的:(我的舉例如下)============================================
初始化改為:spark = SparkSession.builder.master('your-spark伺服器-url').appName("hxy_test_script").getOrCreate()
提交改為:spark-submit -jars aws-java-sdk-1.7.4.jar,hadoop-aws-2.7.3.jar --master spark://192.168.31.10:7077 --executor-memory 40G --total-executor-cores 20 test_extract_model_spark.py