使用Jupyter笔记本使用Spark SQL拉出4亿行

时间:2017-04-28 12:09:16

标签: scala hdinsight pyspark-sql

我是Spark的新手,并且一直在尝试执行结果集中有近4亿行的Spark SQL。我正在从Jupyter笔记本执行Spark SQL。我在Azure HDInsight上使用Spark。以下是Spark Cluster的配置:

  1. 每个执行者的核心数 - 3
  2. 执行人数 - 5
  3. 执行者记忆 - 4098 MB
  4. 只要我执行查询给我前几行,一切正常。但是当我试图拉出所有行,即4亿行时,它会抛出一个错误,即执行者杀死了请求"。

    我想知道的第一件事是可以从Spark SQL或Jupyter笔记本中提取这一数据量。

    如果确实可以拉这个音量,那么我做错了什么呢?

    目前,我没有确切的错误消息,我将很快更新此帖并显示错误消息。

    但如果有人能帮忙解决这个问题,那将是一个很好的帮助。

    谢谢!

1 个答案:

答案 0 :(得分:0)

一般来说,它反对分布式计算的想法,以实现400M行。如果您可以提供您想要完成的内容的详细信息,我们可以建议您如何以并行方式实现这一目标。 Spark具有灵活的API,可以适应大多数用例。

你仍然可以做到这一点。当您收集400M行时,您将在驱动程序进程中累积它们。在Azure HDInsight上,驱动程序进程在yarn master应用程序中运行。您需要将其配置为具有足够的内存来容纳那么多数据。 Jupyter的配置是:

%% configure -f   {" driverMemory":" 60G" }

只需将其作为单独的单元格添加到笔记本中。