Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 使用Jupyter笔记本使用Spark SQL拉取4亿行_Scala_Azure Hdinsight_Pyspark Sql - Fatal编程技术网

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

Scala 使用Jupyter笔记本使用Spark SQL拉取4亿行,scala,azure-hdinsight,pyspark-sql,Scala,Azure Hdinsight,Pyspark Sql,我是Spark新手,一直在尝试执行一个Spark SQL,结果集中有近4亿行。我正在执行Jupyter笔记本中的Spark SQL。我正在Azure HDInsight上使用Spark。以下是Spark Cluster的配置: 每个执行器的内核数-3 遗嘱执行人人数-5 执行器内存-4098 MB 只要我执行查询以给出前几行,一切正常。但是,当我试图取出所有行(即4亿行)时,它抛出了一个错误,即“执行者已终止请求” 我想知道的第一件事是,是否有可能从Spark SQL或Jupyter笔记本中提取

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

  • 每个执行器的内核数-3
  • 遗嘱执行人人数-5
  • 执行器内存-4098 MB
  • 只要我执行查询以给出前几行,一切正常。但是,当我试图取出所有行(即4亿行)时,它抛出了一个错误,即“执行者已终止请求”

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

    如果确实有可能拉取这个卷,那么我做错了什么

    目前,我没有确切的错误消息,我会很快用错误消息更新这篇文章

    但如果有人能帮上忙,那将是一个很大的帮助


    谢谢

    一般来说,将4亿行具体化与分布式计算的思想背道而驰。如果您能提供您想要完成的细节,我们可以建议您如何以并行方式完成。Spark具有灵活的API,可以适应大多数用例

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

    %%配置-f {“driverMemory”:“60G”}


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

    您希望使用4GB执行器处理5亿行。那么。。。这是雄心勃勃的。您将幸运地实际处理1000万。我们正在尝试Spark,以确定它是否满足我们的要求。我们需要构建一个解决方案,使用户能够从应用程序使用的表中提取任何列,并能够将其显示到数据网格中。现在,用户希望能够从表中提取N个列,希望表联接的所有行都显示在数据网格中。这就是我尝试具体化4亿行的原因,因为这是我们甚至在生产中也可以看到的数据量。在这种情况下,如果您需要为用户提供可扩展的数据探索工具,您可以拉伸spark驱动程序以适应数据大小,也可以将结果存储在临时外部存储器中,比如SQL或NoSQL数据库(MS SQL、MySQL、CosmosDB、HBase),然后只需在其上使用adhock查询即可在UI中显示数据的特定部分。在Spark中,使用数据源很容易将结果并行存储到外部数据库中。