注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

Contour 常见问题解答

以下是关于 Contour 的一些常见问题解答。 有关一般信息,请查看我们的 Contour 文档


如何开始新的分析?

在 Foundry 中,每个用户都有自己的文件夹,称为 您的文件。这是一个用户可以使用数据进行原型设计并与其他用户分享结果的文件夹。在此文件夹中,用户可以创建他们的第一个分析:

  1. 导航到工作区导航栏上的 文件 部分。
  2. 导航到 您的文件 选项卡。
  3. 通过选择 +新建 并从下拉菜单中选择 分析 来创建新的分析。
  4. 在生成新的分析后选择 +创建新路径
  5. 选择您想要在相应文件夹中分析的数据集。

返回顶部


如何在平台中查找相关数据?

有两种主要方法可以发现数据:

  • 搜索: Foundry 在页面左侧的工作区侧边栏中有一个平台范围的搜索工具。此工具将搜索平台中的所有资源,是在您知道数据集名称时查找数据的绝佳方法。请注意,搜索工具可以用于查找平台中的任何资源,包括电子表格、Contour 分析和代码工作簿。

  • 数据目录: Foundry 数据目录 包含清理过的、策划好的数据集,供业务分析师和数据科学家使用。数据目录 是一个很好的起始点,如果您对平台中已经存在的数据感兴趣,可以从主页直接访问。您可以通过在工作区侧边栏中选择 主页 返回主页。

返回顶部


如何与同事分享分析?

与同事分享资源意味着他们必须拥有您正在工作的项目的访问权限。选择 分享 并发送共享 URL 或直接将您的同事添加到资源中以自动通知他们。如果您的同事收到 权限被拒绝 错误,他们需要请求访问。一旦您同事对项目的访问权限获得批准,他们将能够通过电子邮件看到您与他们分享的分析。

返回顶部


如何创建一个用于进行分析的初始数据集?

鉴于数据通常以其原始形式在 Foundry 平台中可用,知道如何在开始创建分析之前筛选数据是很重要的。数据筛选将使您能够专注于对分析重要的元素,而不被不相关的数据分心。

  • 排序和筛选:直方图数据筛选:
    • 在 Foundry 中,排序和筛选是最常用的功能之一。您可以使用直方图面板查看给定列中的所有不同选项,然后选择您想要处理的特定类别。
  • 属性数据筛选:
    • 如果您想筛选到仅符合设定标准的数据,请使用 保留
    • 如果您想 排除 符合设定标准的数据,请使用 移除
  • 多个数据筛选:
    • 如果您想同时筛选符合多个条件的数据,请使用 匹配且
    • 如果您想筛选符合多个条件但不一定在同一时间/在同一行数据中的数据,请使用 匹配或
  • 调整筛选器:
    • 当用户为特定筛选器创建新的分析(例如,carrier_code = DL)时,其他用户可以通过更改筛选器到他们的应用案例(例如,carrier_code = UA)或完全移除筛选器来轻松复制他们的分析以获得全局分析。

分析操作默认应用于整列,以便于大数据集的分析。如果您想对较小选择的行进行分析(类似于在 Excel 中选择特定单元格范围),请在应用操作之前将数据筛选到所需的行。

要查看更多筛选选项,请查看我们的筛选数据文档。

返回顶部


如何更改我的分析视图?

有四个选项可用于更改您的分析视图。您可以执行以下操作:

  • 排序 列为升序或降序

  • 重新排序

  • 移除

  • 添加 列:请参阅 Foundry 中常见的 Microsoft Excel 分析等效项 中的 VLOOKUP 部分

  • 创建自动记事本文档:您可以选择将 Contour 分析输出添加到自动 记事本 中,以便在执行摘要中呈现您的数据。此报告将根据 Foundry 中刷新的数据进行更改,无需重新创建相同的报告。

返回顶部


如何应用计算?

要在 Contour 中执行新的计算,您需要在表达式面板中选择 添加列。然而,与单元级操作不同,Foundry 在列级别操作。不是将公式 A1 * B1 返回到单元格 C1,Foundry 将 column1 * column2(将 column1column2 中每个相应行级条目相乘)返回到 column3

返回顶部


Foundry 中常见的 Microsoft Excel 分析等效项是什么?

以下是一些最常见的 Microsoft Excel 函数及其在 Contour 中的表达式等效项。您可以以与 如何应用计算? 中讨论的相同方式应用这些计算。

  • Excel: IF(logical_test, value_if_true, [value_if_false])

    • Foundry: CASE WHEN logical_test THEN value_if_true ELSE value_if_false END
    • 示例:如果我想创建一个返回 yes 的列,如果航班起始于 JFK,否则返回 no,表达式将如下所示:
      • CASE WHEN "origin" = 'JFK' THEN 'yes' ELSE 'no' END
  • Excel: CONCAT(cell1, [cell2],…)

    • Foundry: CONCAT("col1", ["col2"],...)
    • 示例:如果我想通过连接 timestamporder_ID_number 列来为每个订单创建一个唯一键,表达式将如下所示:
      • CONCAT("timestamp","order_ID_number")
  • Excel: VALUE(text)

    • Foundry: CAST("col1" AS DOUBLE)
    • 注意:您可以通过替换表达式中的 DOUBLE 类型,将列的数据类型转换为 字符串整数布尔日期时间戳长整数
    • 示例:如果我想在某些列上进行乘法运算,但其中一个必要的列 cost 被分类为字符串,表达式将如下所示:
      • CAST("cost" AS DOUBLE)
  • Excel: LEFT(text, [num_chars])

    • Foundry: SUBSTRING("col1", num2, num3)
    • 注意:num2 是起始索引,num3 是子字符串的长度
    • 示例:如果我想从 airport_display_name 列中提取括号内的字母,例如 [ALB] Albany International + Albany, NY[AZA] Phoenix - Mesa Gateway + Phoenix, AZ[CLT] Charlotte Douglas International + Charlotte, NC,表达式将如下所示:
      • SUBSTRING("airport_display_name", 2, 3) 将返回包含 ALBAZACLT 的列。

阅读 表达式面板支持表达式语法 文档以获取更多信息。

  • Excel: VLOOKUP(value, table, col_index, [range_lookup]) & ADD in columns from other datasets
    • Foundry: 合并 面板。
    • 合并面板允许您将当前工作数据集与另一个数据集合并,并将匹配结果合并到您的数据中。 示例:您正在使用数据集 flights,并且希望从 aircraft 数据集中添加列 manufacturernumber_of_seats

航班数据集示例

flight_iddateorigintail_num
9992018-04-01LASN227FR
9972018-07-27MIAN303FR

飞机数据集示例

tail_numbermanufacturernumber_of_seats
N303FRAirbus186
N227FRAirbus180

您可以使用合并面板通过从 aircraft 数据集中合并列 manufacturernumber_of_seats 来丰富您的 flights 数据集。由于两个数据集共享一个引用尾号的列,我们可以使用此列进行合并。如果您的数据集中有名称相同但不是合并键的列,Contour 将提示您为列名添加前缀。然后,填写以下字段:

  1. 选择要执行的合并类型:左合并(添加列)、内合并(交集)、右合并(切换到数据集)或全合并。
  2. 选择要添加到当前工作集的另一数据集的列。默认情况下,将返回两个集合中的所有列。
  3. 选择每个集合中的一个或多个键。如果使用多个合并键,可以选择 匹配任何匹配所有 条件。

丰富的数据集示例

您丰富的数据集将如下所示:

flight_iddateorigintail_nummanufacturernumber_of_seats
9992018-04-01LASN227FRAirbus186
9972018-07-27MIAN303FRAirbus180

返回顶部


如何创建数据透视表?

您可以通过数据透视表面板快速计算多个维度上的数据聚合值。

要与透视后的完整数据进行交互,请使用面板上的 切换到透视数据 选项,这将使您的 Contour 分析过渡到透视数据的完整计算结果,用于数据透视表面板下的所有面板。

返回顶部


如何在整个数据系列上应用函数?

您可以在 Foundry 中通过表达式面板中的 聚合 选项来实现这一点。请注意,与您可以在其他电子表格软件中选择的范围级操作不同,Foundry 在列级别操作,因此您的列需要正确筛选到您感兴趣的行。

  • 函数:

Contour 函数配置。

  • 结果:

Contour 结果。

返回顶部


Foundry 中常见的 Microsoft Excel 聚合等效项是什么?

以下是一些最常见的 Excel 聚合函数及其在 Contour 中的表达式等效项。您可以以与 如何在整个数据系列上应用函数? 问题中显示的相同方式应用这些计算。

  • SUM(): 当您使用 sum 函数进行聚合时,这将对指定列分组的聚合列的值进行求和。
    • 示例:查找每个航空公司(carrier_code)的 total_distance_flown
      • 函数:

Contour sum 函数设置。

    - 结果:

![Contour sum 结果。](../../foundry-docs/contour/media/contour-sum-result.png)
  • COUNT(): 当您使用 count 函数进行聚合时,这将对指定列分组的聚合列的条目数进行计数。

    • 示例:通过聚合总 flight_id 的计数查找 carrier_code 的航班数量

    • 函数: Contour 配置。

    • 结果: Contour 计数结果。

  • AVG(): 当您使用 avg 函数进行聚合时,这将计算每个 carrier_codeair_time 的平均值。

  • MAX(): 当您使用 max 函数进行聚合时,这将查找每个 carrier_codeair_time 的最大值。

  • MIN(): 当您使用 min 函数进行聚合时,这将查找每个 carrier_codeair_time 的最小值。

返回顶部


有哪些方法可以检查我的分析?

您可以添加另一个面板来检查您的结果数据集。

  • 表格面板: 通过在分析后插入一个 表格 面板,您可以快速检查您添加的新列是否正确,或者之前面板的逻辑是否导致预期结果。

  • 直方图面板: 通过在分析后插入一个 直方图 面板,您可以快速概览不同的数据类别,以便对数据有一个大致的了解,或者检查筛选的类别是否正确。

返回顶部


在 Contour 中保存数据集与在代码仓库或代码工作簿中创建数据集有什么区别?

从 Contour 分析中保存数据集的过程与从代码仓库或代码工作簿中创建数据集的过程基本相同 - 逻辑被翻译为一系列 Spark 转换,在集群上执行,并保存到分布式文件系统中存储的数据集中。保存分析为新数据集时没有行限制。然而,数据规模越大,保存所需的时间就越长,因为底层计算将更昂贵。请注意,导出数据与将路径保存为数据集是不同的,Contour 导出数据时会有行限制。

返回顶部


当我尝试导出时,它给我一个 100,000 行限制。这正确吗?

是的,这是正确的。Contour 的导出限制为 100K 行。如果您需要导出超过这个数量的数据,可以将 Contour 的结果保存为数据集,然后从 数据集预览 页面的 操作 下拉菜单中下载它。

Contour 导出和数据集下载的限制可能会根据合作伙伴要求在 Foundry 注册中有所不同。

返回顶部


我可以自动更新 Contour 分析路径吗?

目前,还没有办法自动更新 Contour 分析路径;这必须手动完成。然而,可以为分析的结果数据集设置一个时间表。保存数据集后,您可以打开数据集预览,并从 操作 下拉菜单中选择 管理时间表。然后,结果数据集将根据您配置的时间表进行构建。

返回顶部


我可以恢复对 Contour 分析的更改吗?

是的,您可以通过选择屏幕右上角的 撤销 来恢复更改。

Contour 撤销选项。

返回顶部


当我尝试复制我的分析时,我只看到一个旋转器,但没有任何反应。我该怎么办?

这可能发生在您的分析路径过多时。尝试删除不必要的路径,然后再次复制。

有关更多信息,请查看 一般性能问题 部分。

返回顶部


无法从 Contour 搭建数据集

从 Contour 搭建数据集时收到错误消息。

有关更多信息,请参阅我们的 搭建和检查错误指南

返回顶部


数据透视表未显示所有数据

数据透视表预览未显示表中的所有数据。数据透视表计算整个数据集上的聚合,并将输出减少到前 100 列或 10,000 个值,以防止浏览器性能缓慢。要获取这些大型数据透视表的确定答案,您需要 切换到透视数据。您可以在 数据透视表文档 中阅读更多相关信息。

要进行故障排除,请执行以下步骤:

  1. 尝试 切换到透视数据,这将强制 Contour 计算整个数据集。
  2. 在表格面板中查看数据。请注意,数据透视面板将保持不完整。
  3. 如果可能,在数据透视表上方插入一个筛选面板,以减少您传递的数据(这也应改善整体性能),但再次强调,这并不改变数据透视表面板只会计算数据透视表前 10,000 个单元格的事实(出于性能原因)。
  4. 要获得完整的导出,请选择 切换到透视数据,然后使用导出面板或使用当前路径末端的导出选项。

返回顶部


在数据透视表中发现重复列

我的数据透视表由于重复列而无法计算。这通常是因为列名除了大小写外是等效的。

要进行故障排除,请执行以下步骤:

  1. 检查您的数据透视表的列部分中是否有列名除了大小写外是等效的(例如,Testtest)。Foundry 数据集列名不区分大小写,因此当列被透视时,列 Testtest 被视为重复。
  2. 将任何此类值映射为单一大小写,以便在透视列时不会发生冲突。

返回顶部


一般性能问题

您的 Contour 很慢,您想找出导致性能下降的原因。

要进行故障排除,请执行以下步骤:

  1. 首先检查您分析中使用的输入数据集是否使用 Parquet 或 Avro 文件;如果不是,确保您正在处理适当的、干净的数据集版本。

  2. 检查您是否使用存储为 CSV 文件的原始、摄取版本的数据集,这种情况性能较差。这是此问题最常见的原因。

  3. 检查输入数据集的分区。如果用于分析的数据集分区不佳,那么这将导致性能下降。

  4. 要检查输入数据集中文件的大小,请转到 数据集 → 详细信息 → 文件 → 数据集文件

  5. 文件的大小应至少为 128 MB。如果它们太小或太大,您将需要重新分区。

  6. 如果您的路径很长,那么您应该将中间数据集物化,并创建以这些新物化的数据集开始的新路径。这将减少逻辑执行的冗余,因为每个面板执行创建该面板所需的完整查询路径(例如,所有先前面板中使用的转换逻辑,如果有的话)。

  7. 考虑减少分析中的路径数量。这可以减慢浏览器性能,尤其是在使用路径概览屏幕时。

有关进一步阅读,请查看我们的 Contour 分析性能优化 文档。

返回顶部


count_distinct() 在表达式面板中的窗口函数中失败

由于 Spark 的限制,count_distinct() 函数在窗口函数中不可用。查看 官方 Spark 文档 ↗

您可以在数据透视表面板中实现类似的功能(取决于您希望使用的窗口逻辑),其中提供了一个唯一计数聚合选项。您可以将行/列组合定义为“窗口”,然后为每个交集生成唯一计数。

返回顶部