nit*_*a j 5 dataframe apache-spark-sql pyspark aws-glue aws-glue-spark
我有一个胶水中的 pyspark 代码,我想创建一个具有映射结构的数据框,该数据框是整数和字符串的组合。
样本数据:
{ "Candidates": [
{
"jobLevel": 6,
"name": "Steven",
}, {
"jobLevel": 5,
"name": "Abby",
} ] }
Run Code Online (Sandbox Code Playgroud)
因此,我尝试使用下面的代码来创建地图数据类型。但每次整数数据类型 jobLevel 都会转换为字符串数据类型。有什么建议可以通过保留作业级别的数据类型来完成此任务吗?
使用的代码:
df = spark.sql("select Supervisor_name,
map('job_level', INT(job_level_name),
'name', employeeLogin) as Candidates
from dataset_1")
Run Code Online (Sandbox Code Playgroud)
映射值不可能具有不同的类型。对于这种情况使用结构体。
df = spark.sql("""
select Supervisor_name,
struct(INT(job_level_name) as job_level,
employeeLogin as name
) as Candidates
from dataset_1
""")
Run Code Online (Sandbox Code Playgroud)