如何使用大数据从两个电子表格中的数据中给出 if 语句的结果?
Posted
技术标签:
【中文标题】如何使用大数据从两个电子表格中的数据中给出 if 语句的结果?【英文标题】:How can I use Big Data to give results on an if-statement from data that is in two spreadsheets? 【发布时间】:2019-04-30 11:35:32 【问题描述】:我试图证明像 Apache Hadoop 或 Google BigQuery 这样的大数据系统可能是比构建整个数据模型并从 QlikView 显示它们更快、更轻松地分析和显示特定数据的更好选择。
在这个简单的示例中,我想使用大数据系统来了解在线销售率有多高。在这里,我想从这两个表中获取销售和在线销售的报价。
销售: https://docs.google.com/spreadsheets/d/1vWuVvz7Sltf6gAys28Ayv6u9juFxZPKupRYTRkcQhTA/edit?usp=sharing
在线销售: https://docs.google.com/spreadsheets/d/162Cosl_nn0iS1y4NpytVd8NsO7sj16NdmgjtA87ppIw/edit?usp=sharing
请你们帮我写一个代码,以便在输入客户编号时显示结果? (请检查电子表格)
到目前为止,我的 Google Cloud Platform 中有 Google BigQuery,还有一个可供测试的 Hadoop 集群。根据您的知识,我可能会使用其中任何一种。
很遗憾,到目前为止我还没有代码。
如果我输入客户“1002”,我希望得到 44.4% 的结果,因为在电子表格中他的在线销售额“2.000 欧元”除以他的销售额“4.500 欧元”等于 0.44。
可选:如果您知道如何在 Apache Ambari(或类似设备)上显示数据,我也非常感谢您获得此教程!
非常感谢您的帮助!
This is my frontend in BigQuery since 10.05.2019
【问题讨论】:
【参考方案1】:这是 BigQuery 的解决方案。
首先,我们需要获取链接到 BigQuery 的 Google 表格文档中的数据。您可以通过在 Google Drive 中创建一个源为工作表的表格来做到这一点,这通过 UI 相对简单:
您可以定义架构并使用其他选项忽略标题行。
一旦设置好表,我们就可以在 BigQuery 中查询它们。以下 SQL 将根据每个用户提供您想要的内容。我已经注释掉了一行,您可以在其中插入客户 ID 以仅返回该客户。
SELECT a.Customer AS Customer,
round(100.00*sum(b.Online_Sales)/sum(a.Sales), 2) AS PctOnlineSales
FROM
Dataset.Big_Data_Test_1_Sales a
JOIN
Dataset.Big_Data_Test_1_Online_Sales b
ON a.Customer = b.Customer
--WHERE a.Customer IN ('1002')
GROUP BY 1
ORDER BY 1
这是我运行上述代码时的结果:
我假设在生产中,有些情况下用户在两张表中都没有购买。切换到FULL OUTER JOIN
并使用IFNULL
和ISNULL
函数将处理与此相关的问题。
如果您有任何问题,请告诉我。
【讨论】:
谢谢埃里克!按照您的说明操作时,我收到一条错误消息,提示“在 EU 位置找不到数据集”。我该如何解决这个问题? 你能分享一些你的环境截图吗?也许是数据集/表列表和查询视图。您可以将它们编辑到原始问题中。 请查看我刚刚添加到查询中的屏幕截图。 您是否将Dataset.Big_Data_Test_1_Sales
更改为Big_Data_Test_Spreadsheet.Big_Data_Test_1_Sales
以符合您的命名约定?
如果还有其他问题,请告诉我。以上是关于如何使用大数据从两个电子表格中的数据中给出 if 语句的结果?的主要内容,如果未能解决你的问题,请参考以下文章
如何在谷歌电子表格中将多个单元格与一行中的两个可能值进行比较?
pb中 如何把两个表中的内容导出到一个电子表格 如何把一个字段作为下拉列表框的item
如何使用 CarSource 模块自动从 Excel 电子表格中捕获数据?