pyspark-sql - 使用日期列手动创建数据框
问题描述
我正在阅读 pyspark 文档中的示例代码
https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.SQLContext
在示例代码中,它创建了一个这样的数据框
df = spark.createDataFrame([('2015-04-08',)], ['dt'])
df.select(add_months(df.dt, 1).alias('next_month')).collect()
[Row(next_month=datetime.date(2015, 5, 8))]
我想知道为什么在 '2015-04-08' 之后必须有一个逗号,而只有一列。我觉得这可能与元组类型有关,但想了解更多。
解决方案
单元素元组有额外的逗号(',') 以用算术表达式 (1) 区分它们。下面的例子应该更清楚。
气韵表达:
a = (1)
type(a)
#int
具有单个元素的元组:
b = (1,)
type(b)
#tuple
您可以使用空括号定义零元素元组。
zero_element_tuple = ()
type(zero_element_tuple)
#tuple
只有单元素元组需要额外的逗号(',')来用算术表达式区分它们,多元素元组不需要额外的逗号结尾。
推荐阅读
- java - 删除 ResutSet 缓存数据
- python - 如何让 tormysql 进行插入?
- rest - 对象属性的 JFrog Artifactory API 查询不返回请求的详细信息
- java - 数组解析java中的android api json数组
- android - 为什么 Dagger2 注入相同的对象但有 2 个不同的实例?
- javascript - 无法在 html5 中播放广播源
- python - 从 Python 中的 DataFrame 更新 sql 中的一列
- php - 连接到 Amazon RDS 后 Mysql 创建表时出错
- php - php Cookies 不会在某些页面上重置
- git - Git Pulling commits 在不同的机器上重置