利用pyspark 读取 S3上数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzy459176895/article/details/83616465
    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 

猜你喜欢

转载自blog.csdn.net/hzy459176895/article/details/83616465