我正在将pig脚本迁移到pyspark,而且我是pyspark的新手,所以我在数据加载方面遇到了麻烦。
我的猪脚本看起来像:
Bag1=使用PigStorage('\u1'(AS加载'/refined/em_results/202112/'(PAYER_SHORT:字符数组,SUPER_PAYER_SHORT:字符数组,已付款:双倍,金额:双倍);
我想在Pyspark中找到类似的东西。
目前我已经在Pyspark中尝试过:df=spark.read.format("csv"(.load("/refined/em/em_results/202112/*"(
我可以用这个读取文本文件,但值是单列的,而不是分隔在不同的列中。请在下面找到一些样本值:
|_c0
|AZZCMMETAL2021/1211FGPP7491764|
|AZZCMMETAL2021/1221emp7760484|
输出应该是这样的:
_c0 _c1 _c2 _c3_c4 _c5 _c6 _c7
AZZCM金属2021/12 11 FGP p p 7 491764
AZZCM金属2021/12 11下摆p 7 760484
知道如何做到这一点吗?谢谢
Generaly spark会尝试将(,([comma]作为分隔符值,以防您必须提供空间作为分隔符。
df = spark.read.csv(file_path, sep =' ')
这解决了问题。我使用的不是"\u1"
,而是"u0001"
。请在下面找到答案。
df = spark.read.option("sep","u0001").csv("/refined/em/em_results/202112/*")