数据分析使用工具时候遇到的坑,持续更新(hive pyspark pandas)

1.pyspark生成parquet

注意!!如果你的几个需求之间,生成表的schema不一致,不要用同一个名称生成parquet,会导致失败,并且没有报错信息
即是:parquet不要重名!除非schema一致!

2.使用pandas生成csv

数据量较大的时候,比较长的字符串(内容是数字)就会变成科学计数法
解决方法:
1做一个后缀加“”字符再生成csv
2不用pandas,直接使用pyspark的dataframe.write.csv(xxx.csv,header=True) 生成在HDFS上

3.代码计算相关

1.spark的dataframe都是在执行action的时候进行计算; 所以如果循环中引用了一个计算较为复杂的DF,建议先将此DF落地
2. 使用window 去计算Max Min, 使用MAX(STRUCT(event_time,other_tags)) 会比较快
3. 如果JOIN的2边涉及到必须保留的空值,建议改成空字符串; 因为2个空值JOIN是会损失所有结果
4. 使用from_unixtime(timestamp,‘yyyyMMdd’)的时候注意机器时间, 该方法转化的时间和机器时间一致
5. 如果crontab 定时任务, 时间的时区也和机器一致
6. spark-submit 在本机断电的情况下可能会导致提交的任务就此停住: 使用nohup spark-submit XX.py > XX.log 2>&1 &可以在XX.log里面记录执行log; 且不会断电

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值