我是Spark的新手,并且一直在尝试执行结果集中有近4亿行的Spark SQL。我正在从Jupyter笔记本执行Spark SQL。我在Azure HDInsight上使用Spark。以下是Spark Cluster的配置:
只要我执行查询给我前几行,一切正常。但是当我试图拉出所有行,即4亿行时,它会抛出一个错误,即执行者杀死了请求"。
我想知道的第一件事是可以从Spark SQL或Jupyter笔记本中提取这一数据量。
如果确实可以拉这个音量,那么我做错了什么呢?
目前,我没有确切的错误消息,我将很快更新此帖并显示错误消息。
但如果有人能帮忙解决这个问题,那将是一个很好的帮助。
谢谢!
答案 0 :(得分:0)
一般来说,它反对分布式计算的想法,以实现400M行。如果您可以提供您想要完成的内容的详细信息,我们可以建议您如何以并行方式实现这一目标。 Spark具有灵活的API,可以适应大多数用例。
你仍然可以做到这一点。当您收集400M行时,您将在驱动程序进程中累积它们。在Azure HDInsight上,驱动程序进程在yarn master应用程序中运行。您需要将其配置为具有足够的内存来容纳那么多数据。 Jupyter的配置是:
%% configure -f {" driverMemory":" 60G" }
只需将其作为单独的单元格添加到笔记本中。