首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在apache spark中读取数据和向S3写入数据

在apache spark中读取数据和向S3写入数据
EN

Stack Overflow用户
提问于 2016-11-23 17:24:39
回答 1查看 928关注 0票数 0

我已经运行了两次相同的应用程序,一次是社区版(美国西部只有6 GB内存),另一次是一个驱动程序和一个工作者( 60 GB内存,欧盟中心),令人惊讶的是,社区版的应用程序在读取和写入数据到S3方面运行得更快。

对于这个糟糕的结果,我没有找到任何解释,因为我们的集群比社区版强大得多,我甚至尝试过一个驱动程序,一个工人(最多60个),这将比社区版多得多。我们在应用程序中使用S3作为数据源,我们读取了一个900万行的.csv文件,对其进行了一些分析,然后再次将结果写入S3,因为我们已经将存储桶挂载到了bdfs中。

代码语言:javascript
复制
 df=sqlContext.read.format('com.databricks.spark.csv').options(delimiter=',',header='true',inferschema='true').load("dbfs:/mnt/mount1/2016/rrdb_succesful_sales/*")

我用来写s3的代码如下:

代码语言:javascript
复制
top_profit_product.coalesce(1).write.csv("dbfs:/mnt/mount2/tappalytics/profitability_report/weekly/top_profit_product",mode='overwrite',header=True)

我不认为我的代码会有任何问题,是吗?有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-23 18:06:51

对于ASF代码,s3a客户端延迟来自: HTTP请求的数量;到s3的带宽,硬盘上的查找时间。

如果您在与VM不同的站点上使用s3存储桶,这将是您的瓶颈。您将受到带宽限制,按MB计费,最好跳过500K的数据,而不是通过中止活动的HTTP GET并设置新的TCP流来寻找新的位置。

提示: s3a://landsat-pds/scene_list.gz是一个很好的20MB测试源;托管在US-east上,AWS为您的下载付费。Spark 2还增加了自己的CSV阅读器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40760419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档