python提交spark,记一次spark-submi 提交python脚本 遇到的问题

一、通过spark-submit 提交报错如下 yarn运行模式

a0e31589fed964d0962a6cdd8d2a4bd2.png

spark用的版本是2.4.0是支持pandas_udf的,而且通过pyspark的shell命令行一条条执行 都是没有问题的 但是将代码作为文件用spark submit提交就报这个错误

二、解决办法:

@pandas_udf(returnType=“string”, PandasUDFType.GROUPED_AGG)中的修改为@pandas_udf(StringType(),PandasUDFType.GROUPED_AGG)

三、疑惑

1、为何shell命令行可以执行

2、官方文档中有

@pandas_udf(“double”, PandasUDFType.GROUPED_AGG)

这样的示例,用spark submit也尝试过用double 也是报同样的错误,

官方文档中对函数参数的说明是,

GROUPED_AGG

A grouped aggregate UDF defines a transformation: One or more pandas.Series -> A scalar

The returnType should be a primitive data type, e.g., DoubleType.

The returned scalar can be either a python primitive type, e.g., int or float

or a numpy data type, e.g., numpy.int64 or numpy.float64.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
-up是一个基于m-ui的上传组件,可以实现文件上传的功能。切片上传是一种将大文件分割成多个小文件进行上传的方式,可以提高上传速度和稳定性。以下是实现拖拽进来跳转页面切片上传视频的步骤:\n\1. 首先需要安装m-ui和xios插件,可以使用pm命令进行安装。\n\2. 在vu组件中引入-up组件,并设置i属性为上传文件的地址,设置headers属性为上传文件的请求头部信息。\n\3. 设置-up组件的yp属性为rag,表示可以通过拖拽文件进行上传。\n\4. 设置-up组件的befor-up属性为一个方法,该方法会在上传文件之前被调用,可以在该方法中对上传的文件进行处理,例如将大文件分割成多个小文件。\n\5. 设置-up组件的-progress属性为一个方法,该方法会在文件上传过程中被调用,可以在该方法中实时更新文件上传的进度。\n\6. 设置-up组件的-success属性为一个方法,该方法会在文件上传成功后被调用,可以在该方法中进行上传成功后的操作,例如跳转页面。\n\7. 在vu组件中定义一个up方法,该方法会在-up组件的上传按钮被点击时被调用,可以在该方法中进行文件上传的操作。\n\8. 在vu组件中定义一个sliFi方法,该方法可以将大文件分割成多个小文件。\n\9. 在vu组件中定义一个mergFi方法,该方法可以将上传成功的多个小文件合并成一个大文件。\n\下面是示例代码:\n\```htm\<mp>\ <-up\ class=\up-dem\"\ drag\ acti=\http//hos300/up\"\ headers=\headers\"\ befor-up=\beforUp\"\ -progress=\Progress\"\ -success=\Success\">\ <i class=\-i-up\"></i>\ <iv class=\-up__x\">将视频拖拽到此处,或<m>点击上传</m></iv>\ </-up>\</mp>\n\<scrip>\impor axios from 'xios'\impor Messag } from 'm-ui'\n\xpor defau {\ () {\ retur {\ headers {\ 'C-Typ' 'multipar/form-'\ },\ fi nu,\ progress \ }\ },\ methods {\ beforUp(fi) {\ this.fi = fi\ this.sliFi()\ retur fals\ },\ Progress(ev, fi, fileLis) {\ this.progress = ev.per\ },\ onSuccess(respons, fi, fileLis) {\ if (respons. === ) {\ this.mergFi()\ this.$router.push('/success')\ } els {\ Messag.error(respons.messag)\ }\ },\ up() {\ this.$refs.up.submi()\ },\ sliFi() {\ // 将大文件分割成多个小文件\ },\ mergFi() {\ // 将上传成功的多个小文件合并成一个大文件\ }\ }\}\</scrip>\```\n\

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值