如何使用大数据从两个电子表格中的数据中为if语句提供结果?

问题描述 投票:-2回答:1

我试图证明像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云平台上安装了Google BigQuery,并准备好在其上进行测试的Hadoop群集。根据您的知识,我可能会使用其中任何一个。

不幸的是到目前为止我没有代码。

如果我输入客户“1002”,我希望得到44.4%的结果,如电子表格中他的在线销售“2.000€”除以他的销售额“4.500€”等于0.44。

可选:如果你有任何想法如何在Apache Ambari(或类似)上显示数据,我将非常感谢你也可以获得这个教程!

非常感谢你的帮助!

This is my frontend in BigQuery since 10.05.2019

hadoop google-cloud-platform google-bigquery
1个回答
1
投票

这是BigQuery的解决方案。

首先,我们需要将Google表格文档中的数据与BigQuery相关联。您可以通过创建一个包含源代码为Google云端硬盘中的工作表的表来完成此操作,这通过用户界面相对简单:

Google BigQuery Create Table Sheets Source

您可以使用其他选项定义架构并忽略标题行。

Google BigQuery Create Table Schema Options

一旦表格设置完毕,我们就可以在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

以下是运行上述内容时的结果:

Google BigQuery SQL Demo

我假设在生产中你有一些用户没有在两张纸上购买的情况。切换到FULL OUTER JOIN并使IFNULLISNULL函数的用户将处理与此相关的问题。

如果您有任何疑问,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.