关键词:
【中文标题】在s3中使用pyspark合并多个小json文件[重复]【英文标题】:merge multiple small json files using pyspark in s3 [duplicate] 【发布时间】:2020-02-15 23:24:13 【问题描述】:我是 spark 的新手。
我的 s3 存储桶的子目录中有多个小的 json 文件 (1kb)。我想合并单个目录中存在的所有文件。使用 pyspark 是否有任何优化方法。
目录结构: 地区/年/月/日/小时/multiple_json_files
如上所述,我有许多目录,想将所有文件合并到一个目录中。
P.S:我尝试过使用 python 但它需要更多时间,尝试过 s3distcp 但结果相同。
谁能帮我解决这个问题
【问题讨论】:
对region/year/month/day/hour/
到*/*/*/*/*/
使用通配符。
【参考方案1】:
你可以通过下面的代码来实现
首先我们需要确保加载 spark 时 hadoop aws 包可用:
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = "--packages=org.apache.hadoop:hadoop-aws:2.7.3 pyspark-shell"
接下来我们需要让 pyspark 在 jupyter notebook 中可用:
import findspark
findspark.init()
from pyspark.sql import SparkSession
我们需要 aws 凭证才能访问 s3 存储桶。我们可以使用 configparser 包从标准 aws 文件中读取凭证。
import configparser
config = configparser.ConfigParser()
config.read(os.path.expanduser("~/.aws/credentials"))
access_id = config.get(aws_profile, "aws_access_key_id")
access_key = config.get(aws_profile, "aws_secret_access_key")
我们可以启动 spark 会话并将 aws 凭据传递给 hadoop 配置:
sc=spark.sparkContext
hadoop_conf=sc._jsc.hadoopConfiguration()
hadoop_conf.set("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
hadoop_conf.set("fs.s3n.awsAccessKeyId", access_id)
hadoop_conf.set("fs.s3n.awsSecretAccessKey", access_key)
终于可以读取数据并显示出来了:
df=spark.read.json("s3n://path_of_location/*.json")
df.show()
【讨论】:
使用胶水(Python/Pyspark)通过配置文件循环从源到s3的多个表?
】使用胶水(Python/Pyspark)通过配置文件循环从源到s3的多个表?【英文标题】:loopthroughmultipletablesfromsourcetos3usingglue(Python/Pyspark)throughconfigurationfile?【发布时间】:2021-10-2912:31:42【问题描述】:我正在寻找使用胶水将多个表从关... 查看详情
无法使用本地 PySpark 从 S3 读取 json 文件
】无法使用本地PySpark从S3读取json文件【英文标题】:UnabletoreadjsonfilefromS3usinglocalPySpark【发布时间】:2021-07-1020:39:09【问题描述】:我正在尝试在本地使用PySpark从S3读取json文件。这是代码importosimportconfigparserfrompyspark.sqlimportSparkSe... 查看详情
PySpark:在 Spark 数据框中读取多个 XML 文件(s3 路径列表)
】PySpark:在Spark数据框中读取多个XML文件(s3路径列表)【英文标题】:PySpark:ReadmultipleXMLfiles(listofs3paths)inSparkdataframe【发布时间】:2020-08-0709:50:39【问题描述】:正如问题所暗示的,我在列表中有一个s3路径列表s3_paths=["s3a://some... 查看详情
将多个 S3 文件夹/路径读入 PySpark
】将多个S3文件夹/路径读入PySpark【英文标题】:ReadingMultipleS3Folders/PathsIntoPySpark【发布时间】:2017-09-1513:03:08【问题描述】:我正在使用PySpark进行大数据分析。我可以使用以下命令导入存储在特定存储桶的特定文件夹中的所有CS... 查看详情
在 aws 胶水 pyspark 作业中从 s3 加载 JSON
】在aws胶水pyspark作业中从s3加载JSON【英文标题】:LoadJSONfroms3insideawsgluepysparkjob【发布时间】:2018-08-1413:31:50【问题描述】:我正在尝试从胶水pyspark脚本中的s3存储桶中检索JSON文件。我正在aws胶水内的作业中运行此功能:defrun(sp... 查看详情
从AWS Lambda python函数将多个JSON文件合并到S3中的单个JSON文件
】从AWSLambdapython函数将多个JSON文件合并到S3中的单个JSON文件【英文标题】:MergingmultipleJSONfilesintosingleJSONfileinS3fromAWSLambdapythonfunction【发布时间】:2022-01-2320:43:27【问题描述】:我对我的工作感到震惊,我的要求是将多个json文件... 查看详情
Pyspark 从 S3 存储桶的子目录中读取所有 JSON 文件
】Pyspark从S3存储桶的子目录中读取所有JSON文件【英文标题】:PysparkreadallJSONfilesfromasubdirectoryofS3bucket【发布时间】:2020-10-1722:19:04【问题描述】:我正在尝试从名为hello的S3存储桶中的名为world的子目录中读取JSON文件。当我使用bo... 查看详情
如何在使用pyspark从s3读取文件时读取文件名
】如何在使用pyspark从s3读取文件时读取文件名【英文标题】:Howtoreadthefilenamewhilereadingthefilesfroms3usingpyspark【发布时间】:2021-11-1617:11:19【问题描述】:我有一个用例,在s3中有多个文件,我正在阅读如下:df1=spark.read.csv("s3://bucke... 查看详情
如何使用给定的reduce函数基于pyspark中的字段合并多个JSON数据行
】如何使用给定的reduce函数基于pyspark中的字段合并多个JSON数据行【英文标题】:HowtomergemultipleJSONdatarowsbasedonafieldinpysparkwithagivenreducefunction【发布时间】:2016-08-1022:56:50【问题描述】:如何使用下面的合并功能与pyspark合并JSON数... 查看详情
使用 Pyspark 在 s3 中写入镶木地板文件时出错
】使用Pyspark在s3中写入镶木地板文件时出错【英文标题】:Errorwritingparquetfileins3withPyspark【发布时间】:2020-07-1009:01:38【问题描述】:我正在尝试读取一些表(parquet文件)并进行一些连接并将它们写入S3中的parquet格式,但是我遇... 查看详情
使用databricks中的pyspark将多个json文件从blob存储读取到数据帧
】使用databricks中的pyspark将多个json文件从blob存储读取到数据帧【英文标题】:Readmultiplejsonfilesfromblobstoragetodataframeusingpysparkindatabricks【发布时间】:2021-12-1711:18:36【问题描述】:我正在尝试将所有json文件存储在blob存储的子文件... 查看详情
使用 pyspark,如何将文件中单行的多个 JSON 文档读入数据框?
】使用pyspark,如何将文件中单行的多个JSON文档读入数据框?【英文标题】:Usingpyspark,howdoIreadmultipleJSONdocumentsonasinglelineinafileintoadataframe?【发布时间】:2018-07-1220:52:03【问题描述】:使用Spark2.3,我知道我可以像这样读取JSON文档... 查看详情
如何使用 pyspark 在 aws 胶水中展平嵌套 json 中的数组?
】如何使用pyspark在aws胶水中展平嵌套json中的数组?【英文标题】:Howtoflattenanarrayinanestedjsoninawsglueusingpyspark?【发布时间】:2019-10-0415:51:11【问题描述】:我正在尝试将JSON文件展平,以便能够将其全部加载到AWSGlue中的PostgreSQL中... 查看详情
如何在 AWS Glue pyspark 脚本中合并两个节点
】如何在AWSGluepyspark脚本中合并两个节点【英文标题】:HowtomergetwonodesinAWSGluepysparkscript【发布时间】:2018-04-1704:59:43【问题描述】:我有一堆JSON文件需要处理。JSON文件的结构(例如简化)是(当awsgluecrawler在这些json文件上运行... 查看详情
在 s3 pyspark 作业中创建单个镶木地板文件
】在s3pyspark作业中创建单个镶木地板文件【英文标题】:creatingasingleparquetfileins3pysparkjob【发布时间】:2020-12-0907:00:46【问题描述】:我编写了一个pyspark程序,它从cassandra读取数据并写入awss3。在写入s3之前,我必须执行repartition(... 查看详情
从s3读取json文件以使用glueContext.read.json粘合pyspark会给出错误的结果
】从s3读取json文件以使用glueContext.read.json粘合pyspark会给出错误的结果【英文标题】:readingjsonfilesfroms3togluepysparkwithglueContext.read.jsongiveswrongresult【发布时间】:2020-01-0320:28:44【问题描述】:有谁知道为什么glueContext.read.json给我一... 查看详情
使用 pyspark 将镶木地板文件(在 aws s3 中)存储到 spark 数据框中
】使用pyspark将镶木地板文件(在awss3中)存储到spark数据框中【英文标题】:storeparquetfiles(inawss3)intoasparkdataframeusingpyspark【发布时间】:2021-06-0917:01:54【问题描述】:我正在尝试从我的s3存储桶中的特定文件夹中读取数据。此数... 查看详情
将多个 JSON 文件合并为单个 JSON 和 parquet 文件
】将多个JSON文件合并为单个JSON和parquet文件【英文标题】:MergemultipleJSONfiletosingleJSONandparquetfile【发布时间】:2020-05-0116:44:02【问题描述】:具有100个JSON的源S3位置所有JSON文件都需要合并为单个JSON文件。即非part-0000...文件输出... 查看详情