注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
以下是关于 Contour 的一些常见问题解答。 有关一般信息,请查看我们的 Contour 文档。
count_distinct()
在表达式面板中的窗口函数中失败在 Foundry 中,每个用户都有自己的文件夹,称为 您的文件。这是一个用户可以使用数据进行原型设计并与其他用户分享结果的文件夹。在此文件夹中,用户可以创建他们的第一个分析:
有两种主要方法可以发现数据:
搜索: Foundry 在页面左侧的工作区侧边栏中有一个平台范围的搜索工具。此工具将搜索平台中的所有资源,是在您知道数据集名称时查找数据的绝佳方法。请注意,搜索工具可以用于查找平台中的任何资源,包括电子表格、Contour 分析和代码工作簿。
数据目录: Foundry 数据目录 包含清理过的、策划好的数据集,供业务分析师和数据科学家使用。数据目录 是一个很好的起始点,如果您对平台中已经存在的数据感兴趣,可以从主页直接访问。您可以通过在工作区侧边栏中选择 主页 返回主页。
与同事分享资源意味着他们必须拥有您正在工作的项目的访问权限。选择 分享 并发送共享 URL 或直接将您的同事添加到资源中以自动通知他们。如果您的同事收到 权限被拒绝 错误,他们需要请求访问。一旦您同事对项目的访问权限获得批准,他们将能够通过电子邮件看到您与他们分享的分析。
鉴于数据通常以其原始形式在 Foundry 平台中可用,知道如何在开始创建分析之前筛选数据是很重要的。数据筛选将使您能够专注于对分析重要的元素,而不被不相关的数据分心。
carrier_code
= DL
)时,其他用户可以通过更改筛选器到他们的应用案例(例如,carrier_code
= UA
)或完全移除筛选器来轻松复制他们的分析以获得全局分析。分析操作默认应用于整列,以便于大数据集的分析。如果您想对较小选择的行进行分析(类似于在 Excel 中选择特定单元格范围),请在应用操作之前将数据筛选到所需的行。
要查看更多筛选选项,请查看我们的筛选数据文档。
有四个选项可用于更改您的分析视图。您可以执行以下操作:
排序 列为升序或降序
重新排序 列
移除 列
添加 列:请参阅 Foundry 中常见的 Microsoft Excel 分析等效项 中的 VLOOKUP 部分
创建自动记事本文档:您可以选择将 Contour 分析输出添加到自动 记事本 中,以便在执行摘要中呈现您的数据。此报告将根据 Foundry 中刷新的数据进行更改,无需重新创建相同的报告。
要在 Contour 中执行新的计算,您需要在表达式面板中选择 添加列。然而,与单元级操作不同,Foundry 在列级别操作。不是将公式 A1
* B1
返回到单元格 C1
,Foundry 将 column1
* column2
(将 column1
和 column2
中每个相应行级条目相乘)返回到 column3
。
以下是一些最常见的 Microsoft Excel 函数及其在 Contour 中的表达式等效项。您可以以与 如何应用计算? 中讨论的相同方式应用这些计算。
Excel: IF(logical_test, value_if_true, [value_if_false])
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],…)
CONCAT("col1", ["col2"],...)
timestamp
和 order_ID_number
列来为每个订单创建一个唯一键,表达式将如下所示:
CONCAT("timestamp","order_ID_number")
Excel: VALUE(text)
CAST("col1" AS DOUBLE)
DOUBLE
类型,将列的数据类型转换为 字符串
、整数
、布尔
、日期
、时间戳
或 长整数
cost
被分类为字符串,表达式将如下所示:
CAST("cost" AS DOUBLE)
Excel: LEFT(text, [num_chars])
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)
将返回包含 ALB
、AZA
和 CLT
的列。flights
,并且希望从 aircraft
数据集中添加列 manufacturer
和 number_of_seats
。航班数据集示例
flight_id | date | origin | tail_num |
---|
999 | 2018-04-01 | LAS | N227FR |
---|---|---|---|
997 | 2018-07-27 | MIA | N303FR |
… |
飞机数据集示例
tail_number | manufacturer | number_of_seats |
---|
N303FR | Airbus | 186 |
---|---|---|
N227FR | Airbus | 180 |
… |
您可以使用合并面板通过从 aircraft
数据集中合并列 manufacturer
和 number_of_seats
来丰富您的 flights
数据集。由于两个数据集共享一个引用尾号的列,我们可以使用此列进行合并。如果您的数据集中有名称相同但不是合并键的列,Contour 将提示您为列名添加前缀。然后,填写以下字段:
添加列
)、内合并(交集
)、右合并(切换到数据集
)或全合并。匹配任何
或 匹配所有
条件。您丰富的数据集将如下所示:
flight_id | date | origin | tail_num | manufacturer | number_of_seats |
---|
999 | 2018-04-01 | LAS | N227FR | Airbus | 186 |
---|---|---|---|---|---|
997 | 2018-07-27 | MIA | N303FR | Airbus | 180 |
您可以通过数据透视表面板快速计算多个维度上的数据聚合值。
要与透视后的完整数据进行交互,请使用面板上的 切换到透视数据 选项,这将使您的 Contour 分析过渡到透视数据的完整计算结果,用于数据透视表面板下的所有面板。
您可以在 Foundry 中通过表达式面板中的 聚合 选项来实现这一点。请注意,与您可以在其他电子表格软件中选择的范围级操作不同,Foundry 在列级别操作,因此您的列需要正确筛选到您感兴趣的行。
以下是一些最常见的 Excel 聚合函数及其在 Contour 中的表达式等效项。您可以以与 如何在整个数据系列上应用函数? 问题中显示的相同方式应用这些计算。
carrier_code
)的 total_distance_flown
- 结果:
COUNT(): 当您使用 count 函数进行聚合时,这将对指定列分组的聚合列的条目数进行计数。
示例:通过聚合总 flight_id
的计数查找 carrier_code
的航班数量
函数:
结果:
AVG(): 当您使用 avg 函数进行聚合时,这将计算每个 carrier_code
的 air_time
的平均值。
MAX(): 当您使用 max 函数进行聚合时,这将查找每个 carrier_code
的 air_time
的最大值。
MIN(): 当您使用 min 函数进行聚合时,这将查找每个 carrier_code
的 air_time
的最小值。
您可以添加另一个面板来检查您的结果数据集。
表格面板: 通过在分析后插入一个 表格 面板,您可以快速检查您添加的新列是否正确,或者之前面板的逻辑是否导致预期结果。
直方图面板: 通过在分析后插入一个 直方图 面板,您可以快速概览不同的数据类别,以便对数据有一个大致的了解,或者检查筛选的类别是否正确。
从 Contour 分析中保存数据集的过程与从代码仓库或代码工作簿中创建数据集的过程基本相同 - 逻辑被翻译为一系列 Spark 转换,在集群上执行,并保存到分布式文件系统中存储的数据集中。保存分析为新数据集时没有行限制。然而,数据规模越大,保存所需的时间就越长,因为底层计算将更昂贵。请注意,导出数据与将路径保存为数据集是不同的,Contour 导出数据时会有行限制。
是的,这是正确的。Contour 的导出限制为 100K 行。如果您需要导出超过这个数量的数据,可以将 Contour 的结果保存为数据集,然后从 数据集预览 页面的 操作 下拉菜单中下载它。
Contour 导出和数据集下载的限制可能会根据合作伙伴要求在 Foundry 注册中有所不同。
目前,还没有办法自动更新 Contour 分析路径;这必须手动完成。然而,可以为分析的结果数据集设置一个时间表。保存数据集后,您可以打开数据集预览,并从 操作 下拉菜单中选择 管理时间表。然后,结果数据集将根据您配置的时间表进行构建。
是的,您可以通过选择屏幕右上角的 撤销 来恢复更改。
这可能发生在您的分析路径过多时。尝试删除不必要的路径,然后再次复制。
有关更多信息,请查看 一般性能问题 部分。
从 Contour 搭建数据集时收到错误消息。
有关更多信息,请参阅我们的 搭建和检查错误指南。
数据透视表预览未显示表中的所有数据。数据透视表计算整个数据集上的聚合,并将输出减少到前 100 列或 10,000 个值,以防止浏览器性能缓慢。要获取这些大型数据透视表的确定答案,您需要 切换到透视数据。您可以在 数据透视表文档 中阅读更多相关信息。
要进行故障排除,请执行以下步骤:
我的数据透视表由于重复列而无法计算。这通常是因为列名除了大小写外是等效的。
要进行故障排除,请执行以下步骤:
Test
和 test
)。Foundry 数据集列名不区分大小写,因此当列被透视时,列 Test
和 test
被视为重复。您的 Contour 很慢,您想找出导致性能下降的原因。
要进行故障排除,请执行以下步骤:
首先检查您分析中使用的输入数据集是否使用 Parquet 或 Avro 文件;如果不是,确保您正在处理适当的、干净的数据集版本。
检查您是否使用存储为 CSV 文件的原始、摄取版本的数据集,这种情况性能较差。这是此问题最常见的原因。
检查输入数据集的分区。如果用于分析的数据集分区不佳,那么这将导致性能下降。
要检查输入数据集中文件的大小,请转到 数据集 → 详细信息 → 文件 → 数据集文件。
文件的大小应至少为 128 MB。如果它们太小或太大,您将需要重新分区。
如果您的路径很长,那么您应该将中间数据集物化,并创建以这些新物化的数据集开始的新路径。这将减少逻辑执行的冗余,因为每个面板执行创建该面板所需的完整查询路径(例如,所有先前面板中使用的转换逻辑,如果有的话)。
考虑减少分析中的路径数量。这可以减慢浏览器性能,尤其是在使用路径概览屏幕时。
有关进一步阅读,请查看我们的 Contour 分析性能优化 文档。
count_distinct()
在表达式面板中的窗口函数中失败由于 Spark 的限制,count_distinct()
函数在窗口函数中不可用。查看 官方 Spark 文档 ↗。
您可以在数据透视表面板中实现类似的功能(取决于您希望使用的窗口逻辑),其中提供了一个唯一计数聚合选项。您可以将行/列组合定义为“窗口”,然后为每个交集生成唯一计数。