【发布时间】:2016-11-23 09:24:39
【问题描述】:
我已经运行了两次相同的应用程序,一次是社区版(美国西部只有 6GB 内存),一次是一名司机和一名工人(60 GB 内存,eu-central),令人惊讶的是,社区版的应用程序在以下方面运行得更快将数据读写到 S3 中。
我没有找到任何解释这个糟糕的结果,因为我们的集群比社区版强大得多,我什至再次尝试了一个司机,一个工人(最多 60 名),这将比社区版花费更多。我们使用 S3 作为应用程序中的数据源,我们读取了一个 900 万行的 .csv 文件,对其进行一些分析,然后再次将结果写入 S3,因为我们已将存储桶安装到 bdfs。
df=sqlContext.read.format('com.databricks.spark.csv').options(delimiter=',',header='true',inferschema='true').load("dbfs:/mnt/mount1/2016/rrdb_succesful_sales/*")
我用来写入 s3 的代码:
top_profit_product.coalesce(1).write.csv("dbfs:/mnt/mount2/tappalytics/profitability_report/weekly/top_profit_product",mode='overwrite',header=True)
我认为我的代码不会有任何问题,是吗?有什么建议吗?
【问题讨论】:
-
结果文件的大小是多少?两种选择都需要多少时间? S3 文件在哪里?美国还是欧盟?
-
我读的@Yaron S3位于新加坡,我写的S3位于法兰克福,社区版在美国西部,我的司机,工人在法兰克福。我要读取的 cvs 文件大约有 900 万行,使用我的真实集群可能需要 15 到 20 分钟才能读取,而社区版大约需要 6 到 8 分钟
-
如果您在不同位置处理数据,那么您将承担长途链路的带宽开销、设置 HTTPS 连接的延迟并支付读取费用。避免。
标签: apache-spark amazon-s3 pyspark apache-spark-sql spark-dataframe