应用熊猫后不能使用 .toPandas() 或 .collect() udf:IndexError



我正在使用pandasUDF将标准ML python库应用于pyspark DataFrame。在定义了模式并进行了预测之后,我得到了pyspark DF作为输出。现在,我想用这个预测数据帧做一些事情,例如,我试图总结列"中的所有值;weekly_fordrest_1";。当我应用.collect((或.toPandas((方法时,在.fit((中会出现以下错误

IndexError: too many indices for array:array is 0-dimensional, but 1 were indexed

每当我尝试将.collect((或.toPandas((方法应用于整个DataFrame或其某些列时,都会出现上述错误。我试图复制DF并应用这些方法,但它导致了相同的错误。

附言:不同ML库的错误是相同的(例如statsmodels.ExponentialSmoothing、fb先知、sklearn RandomForestReturnsor等(

错误

IndexError: too many indices for array:array is 0-dimensional, but 1 were indexed

意味着您正试图为数组的维度编制索引,但索引太多。在这里,你的数组似乎是0维的(意味着它是一个标量(,你试图对它进行索引

由于多个不同库的错误是相同的,我认为您的问题来自UDF,我猜它没有返回您期望的结果。它可能只返回DF中的标量,而不是正则矩阵。

最新更新