PySpark示例中import *from等异常导入语法含义及正确性咨询
问题解答
你看到的import *from写法不是Python官方支持的合法语法,没有对应的官方文档说明,本质是网页渲染代码块时换行错误导致的乱码。
错误成因
原文章页面在渲染代码块时丢失了正确的换行符,把本来应该独立成行的导入语句直接拼接在了上一行的末尾,才会出现*from这类反常写法;你看到的单独一行只有from关键字、没有配套import的问题,也是同个排版错误导致的。
修正后的正确代码
按照PySpark常规导入逻辑拆分换行后,代码是完全符合Python语法规则的标准写法:
from pyspark.context import SparkContext from pyspark.sql.functions import * from pyspark.sql.types import * from datetime import date, timedelta, datetime
语法说明
上述修正后的代码用到的都是Python标准导入语法:
from 模块 import *是通配符导入语法,作用是将目标模块内所有公开的函数、类、变量直接导入当前作用域,调用时不需要加模块名前缀。from pyspark.sql.functions import *用于导入PySpark SQL的全部内置计算函数,比如常用的col、when、sum等from pyspark.sql.types import *用于导入PySpark SQL的全部数据类型定义,比如常用的StringType、IntegerType、StructType等
- 最后一行是精准导入语法,从Python标准库
datetime模块中,单独导入date、timedelta、datetime三个日期时间相关类。
该文章的代码排版错误已经过读者核实确认,对应示例的正确版本存放在文章配套的GitHub仓库中。
内容的提问来源于stack exchange,提问作者Mike Robinson
相关产品推荐
相关产品推荐

