【问题标题】:Is there way to get a rowcount on a query using Snowflake and its Spark Connector?有没有办法使用 Snowflake 及其 Spark 连接器获取查询的行数?
【发布时间】:2019-08-12 16:25:17
【问题描述】:

我正在我的 Spark 应用程序中运行一个返回大量数据的查询。我想知道为了记录目的而查询了多少行数据。我似乎无法找到一种方法来获取行数,而无需手动计算行数,或者调用一个方法来为我计数,因为数据相当大,这对于日志记录来说很昂贵。是否有一个地方可以保存行数并可供抓取?

我已阅读here,Python 连接器将行数保存到对象模型中,但我似乎找不到 Spark 连接器或其底层 JDBC 的任何等效项。

我能找到的最佳方式是 Spark 提供的 RDD 上的 rdd.collect().size。比调用rdd.count()快15%左右

任何帮助表示赞赏????

【问题讨论】:

  • Dataframe API 可以选择提供查询...sqlContext.read .format(SNOWFLAKE_SOURCE_NAME) .options(sfOptions) .option("query", "SELECT COUNT(1) FROM table") .load()
  • 如果我错了,请纠正我,但这与简单地手动计算我已经拥有的数据没有太大区别。此外,这将需要通过 Internet 进行另一个查询,这也需要时间。有没有办法在这个查询中获得count(column) FROM tableselect column1, column2 from table where...

标签: apache-spark snowflake-cloud-data-platform


【解决方案1】:

限制在于 Spark 的 API 不直接提供已完成分布式操作的指标,例如保存到表或文件后的行计数指标。 Snowflake 的 Spark 连接器仅限于 Apache Spark 为其集成提供的调用,并且无法通过 Py/Spark 访问 Snowflake Python 和 JDBC 连接器中其他可用的游标属性。

计算执行结果的简单形式,删除雪花细节,之前已经讨论过解决方案:Spark: how to get the number of written rows?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-09
    • 2016-03-16
    • 1970-01-01
    • 2017-04-27
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多