哪些网站做平面设计素材/长沙网站推广排名优化
需求
把excel中的数据直接导入到hive表,hive表使用parquet来存的。
excel的前三行是字段的name、字段的类型、字段的说明
思路就是根据excel生成rdd和schema,然后根据这2个创建df,然后就可以使用write直接保存为parquet,最后执行load
sparksql中是可以直接执行load的,执行load语句返回的df是啥待研究
TRAPS
excel中的数字设置为文本后,还要在单元格里点一下才会出现左上角的三角符号,如果没有三角符号,poi仍然会识别为numeric
excel中最右边的列的右边仍有可能存在poi识别的列,为了安全要手动把右边的几列删除。行也一样。
为了避免每次都检查excel,可以把excel在代码中设置为文本然后保存为一个临时excel,然后读这个临时excel即可,亲测可用。
StructType的add方法跟append和+=
不同,左边一定要用变量接
Row对象的构建不能一个一个的加进来,可以先把所有值存到一个数组,然后Row(arr: _*) 亲测。
因为Row的apply方法的参数为可变数组,发现row +: value 不报错,猜测应该也可以,有机会实验下