【发布时间】:2021-02-26 08:44:25
【问题描述】:
我有一个定义了此架构的 CSV 源文件。
["Name", "Address", "TaxId", "SS Number", "Mobile Number", "Gender", "LastVisited"]
从此 CSV 中,我需要执行以下操作:
-
选择一个列子集,一次一个,并将它们全部映射到这个固定架构:
["Name", "Address", "Mobile", "UniqueID", "UniqueIdentifierRefCode"]
因此,例如,在第一次迭代中,我将仅选择列的子集:
[Col("Name"), Col("Address"), Col("Mobile Number"), Col("TaxId"), Lit("TaxIdentifier")]
-
在下一次迭代中,我需要选择一个不同的子集,但将它们映射到相同的固定模式:
[Col("Name"), Col("Address"), Col("Mobile Number"), Col("SS Number"), Lit("SocialSecurityNumber")]
我可以通过运行 for 循环、选择列并最后执行 UnionAll 来完成所有这些操作。但是有没有更好的方法让 Spark 处理这个问题?
【问题讨论】:
-
对于某些行,您是否有 TaxID 或 SS 编号?如果该行有出租车,您想使用它,如果该行有一个 ss 编号,您想使用它吗?
-
我想同时导出两者。对于原始 CSV 中的每一行,我想在输出中构造 2 行。第一行将有 TaxId,下一行将有 SS Number。两行都有一个共同的模式,并且应该显示在输出中。但我不想写循环,因为我导出的行数将来也可以达到 3 或 4。
标签: .net apache-spark .net-spark