python - 将 pyspark DataFrame 的列的类型从 BigInt 转换为 Int
问题描述
当我按照以下方式创建 pyspark DataFrame 时:
df = spark.sparkContext.parallelize([
('Client1', 'abc', 1),
('Client2', 'def', 2),
('Client3', 'ghi', 3)
]).toDF(['CLIENT_NO', 'CLIENT_FAMILY', 'CLT_INT'])
'CLT_INT' 列的类型为BigInt。
关于如何将该列转换为不包含BigInt而是Int而不改变我创建 DataFrame 的方式的任何建议,即仍然使用parallelize和toDF?
解决方案
你可以试试这样的
>>> df2 = df.withColumn("CLT_INT", df["CLT_INT"].cast(IntegerType()))
>>> df2.printSchema()
root
|-- CLIENT_NO: string (nullable = true)
|-- CLIENT_FAMILY: string (nullable = true)
|-- CLT_INT: integer (nullable = true)
推荐阅读
- trace32 - 将所有函数符号及其基地址转储到 trace32 中的文本文件
- python - 预测另一个列表的对应列表时应采用什么形状的数据
- arrays - 通过 Postman 发送 JSON 会导致我的 Node.js 服务出错
- machine-learning - 什么是 epsilon/k 它是如何出现在 epsilon 贪心算法中的
- python - SymPy dsolve 为数学等效的微分方程返回不同的结果
- mysql - 使用 Laravel 查询 sql 中的 json 列
- javascript - Javascript:如何覆盖整个区域?
- sql - 在读取第三个表t3的数据时,检查表t1中的字符串是否=表t2的条件。
- java - 获取jtree的所有叶子
- c++ - 我可以重载 operator= 以将一个类的对象分配给另一个类的变量,但两个类都来自同一个类模板