如果我正在从Hadoop使用的系统中编写csv样式文件。在文件中使用的最佳列分隔符是什么?我已经尝试过ctrl-A,但这是一个痛苦的因为其他程序不一定显示它,例如我可能使用vi,记事本,网络浏览器,excel查看文件。逗号很痛苦,因为数据可能还包含逗号。我正在考虑在标签上进行标准化。关于Hadoop是否有最佳实践,或者不重要。我做了很多搜索,在这个相当基本的问题上找不到多少。
答案 0 :(得分:2)
每个人肯定都有权衡。这真的取决于你最关心的事情。
逗号 - 如果您关心互操作性。每个工具都适用于CSV。只有当书写系统没有正确地逃脱,或者阅读系统不尊重逃避时,数据中的逗号才是痛苦的。据我所知,Hive可以正确地逃脱。
标签 - 如果您关心互操作性并且期望数据中有逗号但没有标签。您在数据中使用标签的可能性略低,但任何给定工具支持TSV的可能性也会略低。
Ctrl + A-如果您只关心hadoop生态系统功能。这肯定成为事实上的hadoop标准,但hadoop也很容易支持逗号和标签。好处是你通常不必关心逃跑。
最后,我认为这通常是一个折腾,假设你正确逃避(你应该!)。没有最好的做法。如果你发现自己担心这类事情,你可能还想采用更严肃的序列化格式,比如Avro,它在Hadoop世界得到了很好的支持。