我是azure databricks的新手。我有两个输入文件和python人工智能模型,我正在清理输入文件并在输入文件上应用人工智能模型来获得最终的概率。读取文件,加载模型,清理数据,预处理数据和显示输出的概率我只需要几分钟。
但是,当我试图写的结果表或Parquet文件,这是我花了4-5个多小时。我尝试过各种重新分区/partitionby/saveastable的方法,但都不够快。
我的输出sparkDataframe由三列和120000000行组成。我的共享群集大小是9节点群集,每个节点有56gb内存。
我的疑问是:-1.)在具有慢写功能的azuredatabricks中,这是预期的行为吗。2.)我们真的不能在azuredatabricks中调优spark配置吗,azuredatabricks用可用内存自行调优。
2条答案
按热度按时间6uxekuva1#
我已经使用了azure databricks并将数据写入了azure存储,而且速度很快。
此外,databricks与aws一样托管在azure上,因此可以设置spark的所有配置。
如pradeep所问,分区的数据大小和数量是多少?可以使用df.rdd.getnumpartitions()获取它。写之前你试过重新分区吗?谢谢。
mitkmikd2#
业绩取决于多个因素:为了进一步调查,请分享以下细节:
数据的大小是多少?
工人类型的大小是多少?
共享您正在运行的代码?
我建议您阅读以下文章,这有助于提高性能:
使用缓存优化性能
使用databricks快速调试apachespark代码的7个技巧
azure databricks性能说明