假设我有一个json文件,将其命名为foo,包含以下内容:{“a”:2,“b”:3}
我的目标是基于“a”列编写分区数据。
然后根据我的代码,我做了这样的事情:
DataFrame df = sqlContext.read().json("foo");
df.write().mode(SaveMode.Append).partitionBy("a").json("output");
一切正常,我在输出中得到以下结构:
output
|
|-->a=2
|-> part-blahblah
当我检查blahblah部分的内容时,内容中缺少“a”字段。
我的问题是,是否有任何方法可以控制这种行为(通过选项或代码)以保留分区列(因此创建的文件将同时包含a和b,而不是仅包含b)。这样做的原因是,我想从其他没有分区意识的应用程序加载数据,这些应用程序无法推断分区方案。我曾想过将字段a复制到“\u a”并用“\u a”进行分区,但它并不优雅,而且会产生问题。
谢谢!
1条答案
按热度按时间jv4diomz1#
您应该复制分区所依据的列。
在Pypark