为 ETL 转换此数据集时遇到问题
Having trouble transforming this dataset for ETL
我正在研究 Kaggle.com 上的一些数据集,试图学习更好的 ETL 实践,因为我倾向于在转换部分遇到特定问题。对于这个问题,我正在处理 Stack Overflow 2018 的调查结果:https://www.kaggle.com/Whosebug/stack-overflow-2018-developer-survey - 特别是 LanguageWorkedWith 列。
目前我正在使用 RapidMiner/Excel 的组合来尝试更改数据。我不精通R和Python代码,不足以用编码方法解决这个问题。
当前列的问题是它列出了用户选择的所有语言,并用 semi-colon 分隔。我可以轻松地在 semi-colon 上拆分一列,但发生的是两件事:
我有 31 列 LanguageWorkedWith1 - LanguageWorkedWith31。这使得按工资收集语言数量不起作用。
一种笛卡尔效应,其中每一行都会被复制以仅适应语言的选择。所以你会有很多重复的行,这肯定会影响数据的完整性。我还尝试使用 Power BI(加载位置)删除响应者 ID 和语言上的重复项,但这没有用。
理想情况下,我想在 Power BI 中通过工资可视化来创建一种语言,类似于有多少内核,但无法弄清楚在代码之外实现这一目标的过程。不确定这看起来究竟如何,但如果我可以拆分所有语言并计算它们,我至少可以做这样的事情:
但是我不确定我是否可以将其与数据的薪水联系起来。
我只是想更好地了解一些转换过程!感谢任何帮助!
这里的关键是拆分成行而不是列。
所以你最终会得到这样的 table:
您可以在您的数据模型中将该行扩展保留在它自己的相关 table 中,这样您就不会创建一个巨大的 table。
只要您了解一点 DAX,就可以很容易地制作视觉效果。例如,我创建了一个 AvgSalary
度量(在将该列转换为数字类型之后),如下所示:
AvgSalary =
CALCULATE (
AVERAGE ( survey_results_public[ConvertedSalary] ),
FILTER (
survey_results_public,
survey_results_public[Respondent] IN VALUES ( 'Language'[Respondent] )
)
)
然后能够创建如下有趣的图表:
我正在研究 Kaggle.com 上的一些数据集,试图学习更好的 ETL 实践,因为我倾向于在转换部分遇到特定问题。对于这个问题,我正在处理 Stack Overflow 2018 的调查结果:https://www.kaggle.com/Whosebug/stack-overflow-2018-developer-survey - 特别是 LanguageWorkedWith 列。
目前我正在使用 RapidMiner/Excel 的组合来尝试更改数据。我不精通R和Python代码,不足以用编码方法解决这个问题。
当前列的问题是它列出了用户选择的所有语言,并用 semi-colon 分隔。我可以轻松地在 semi-colon 上拆分一列,但发生的是两件事:
我有 31 列 LanguageWorkedWith1 - LanguageWorkedWith31。这使得按工资收集语言数量不起作用。
一种笛卡尔效应,其中每一行都会被复制以仅适应语言的选择。所以你会有很多重复的行,这肯定会影响数据的完整性。我还尝试使用 Power BI(加载位置)删除响应者 ID 和语言上的重复项,但这没有用。
理想情况下,我想在 Power BI 中通过工资可视化来创建一种语言,类似于有多少内核,但无法弄清楚在代码之外实现这一目标的过程。不确定这看起来究竟如何,但如果我可以拆分所有语言并计算它们,我至少可以做这样的事情:
我只是想更好地了解一些转换过程!感谢任何帮助!
这里的关键是拆分成行而不是列。
所以你最终会得到这样的 table:
您可以在您的数据模型中将该行扩展保留在它自己的相关 table 中,这样您就不会创建一个巨大的 table。
只要您了解一点 DAX,就可以很容易地制作视觉效果。例如,我创建了一个 AvgSalary
度量(在将该列转换为数字类型之后),如下所示:
AvgSalary =
CALCULATE (
AVERAGE ( survey_results_public[ConvertedSalary] ),
FILTER (
survey_results_public,
survey_results_public[Respondent] IN VALUES ( 'Language'[Respondent] )
)
)
然后能够创建如下有趣的图表: