dataframe - 具有多种数据类型的 Pyspark SQL 数据帧映射
问题描述
我在胶水中有一个 pyspark 代码,我想创建一个带有映射结构的数据框,它是整数和字符串的组合。
样本数据:
{ "Candidates": [
{
"jobLevel": 6,
"name": "Steven",
}, {
"jobLevel": 5,
"name": "Abby",
} ] }
因此,我尝试使用下面的代码来创建地图数据类型。但是每次整数数据类型 jobLevel 被转换为字符串数据类型。有什么建议可以通过保留工作级别的数据类型来完成这项工作吗?
使用的代码:
df = spark.sql("select Supervisor_name,
map('job_level', INT(job_level_name),
'name', employeeLogin) as Candidates
from dataset_1")
解决方案
地图值不可能有不同的类型。在这种情况下使用结构。
df = spark.sql("""
select Supervisor_name,
struct(INT(job_level_name) as job_level,
employeeLogin as name
) as Candidates
from dataset_1
""")
推荐阅读
- c# - 如果在linq中控制?
- python - Python 上的 Apache Beam:TypeError:Receiver() 不接受任何参数
- angular - 如何将 HighCharts 列划分为不同的类别?
- excel - 在 VBA 中编译时出错“未定义集合定义的类型”
- google-chrome - 为什么 tf.memory 显示的内存使用情况与 Chrome 任务管理器如此不同?
- c++ - 如何在 Microsoft Visual Studio 2017 中检查 C++ 版本
- java - 为什么 PriorityQueue 没有带有 Collection 和 Comparator 参数的构造函数?
- python-3.x - 由错误的函数处理的异常?(Python 3.x)
- android - 在 Android 中将 drawableEnd 添加到 SwitchCompat
- node.js - 重用全局数据库池/连接