必须以非常零碎的方式导入PySpark类/方法

jhkqcmku  于 12个月前  发布在  Spark
关注(0)|答案(1)|浏览(88)

我正在使用Python和PySpark,在Windows 10上使用Anaconda安装。目前,我正在处理sparkbyexamples.com页面,例如hereherehere
我很惊讶有多少类和方法需要以一种零碎的方式导入,例如,SparkSession,StructType,StructField,StringType,IntegerType,Row,col,Column等。并不是所有的导入都在教程材料中指定,所以必须递归地搜索%SPARK_HOME%子树中的*.py文件来找到它们,例如使用findsed和/或vimgrep。这是没有效率的。
我希望,为了进行有效的分析,在特定应用程序域中使用的许多类和方法都可以在单个导入或几个导入中访问。Python用户如何避免寻找正确的类/方法并以零碎的方式导入它们?

js4nwp54

js4nwp541#

为了避免导入多个符号,您可以直接导入一个模块/命名空间,然后使用该命名空间访问所需的符号。这将使您的导入更清晰,更简洁。

from pyspark.sql import types as T, functions as F

schema = T.StructType([
    T.StructField('firstname', T.StringType(), True),
    T.StructField('middlename', T.StringType(), True),
    T.StructField('lastname', T.StringType(), True)
])

相关问题