Ningún módulo llamado 'col' cuando se está ejecutando Pysaprk sql

Prefacio:

  • Desgraciadamente, vuelvo a estar tendido en un pozo. He estado confundido aquí durante mucho tiempo, pero he aprendido mucho comiendo y acostado en el pozo. Naturalmente, crecerás. Si no quieres grabar este pozo aquí, puedes dármelo. Los amigos en la parte de atrás apuntan al nombre:
  • Eso es todo. Yo uso Struct Streaming de Spark aquí. Todo está cansado. No hay ningún tutorial en absoluto. La documentación del sitio web oficial solo habla sobre un uso introductorio simple, pero puede describirse como difícil en el desarrollo real. Es muy difícil encontrar una solución ...

Tema:

  • El código de mi paquete de guía es el siguiente:
from pyspark.sql.functions import col
  • Aparecieron molestas letras rojas al ejecutar en el editor:

  • Ningún módulo llamado 'col'

  • ¿Qué? Creo que me está jugando

  • Así que busqué en Internet durante mucho tiempo, pero no encontré el problema. Finalmente encontré la respuesta en StackOveflow. Puede ser que esta pregunta sea demasiado ingenua para encontrarla.

  • De hecho, la razón de este error no es el problema del paquete de código fuente, sino el problema del editor de código, no pueden pasar cuando son detectados y compilados, por lo que reportarán un error.

  • Razón de la aparición:
    mira el ejemplo primero

# =====================my_module.py==========================
# 创建一个函数命名为func
globals()["func"] = lambda x: print(x)
# 从全局变量当中找出上面定义的这个函数相关的元素
__all__ = [x for x in globals() if x.startswith("func")]
#===========================end==============================

# =======================test.py=============================
# 我们再来导入前面定义的这个包中的函数
from my_module import func
func("test")
# 如果你是在编辑器中执行的,你会发现不能通过编译检查,会说找不到func
# 这是因为只依赖于静态代码分析的工具可能无法识别已定义的功能,所以就造成了编译不能通过
  • Hay tres soluciones:
    1. Si está programando usando VS, puede resolverlo modificando el valor de python.linting.pylintArgs
"python.linting.pylintArgs": [
        "--generated-members=pyspark.*",
        "--extension-pkg-whitelist=pyspark",
        "--ignored-modules=pyspark.sql.functions"
    ]
  1. Instale el paquete python pyspark-stubs, su función es mejorar la detección rápida de algunos paquetes estáticos.
    Tenga en cuenta que "xxx" debe cambiarse a su propio número de versión de PySpark
pip install pyspark-stubs==x.x.x
  1. De hecho, este método es el más simple, de hecho, es eludir la verificación IDE, pero esto es factible
from pyspark.sql.functions as f
f.col("values")

Palabras para motivarte:
todavía soy muy joven y tengo que ir a más boxes, ¡vamos,
no te rindas nunca!

Supongo que te gusta

Origin blog.csdn.net/qq_42359956/article/details/105658763
Recomendado
Clasificación