gpt4 book ai didi

sql - 如何将 String 值转换(或强制转换)为 Integer 值?

转载 作者:行者123 更新时间:2023-12-04 16:28:36 25 4
gpt4 key购买 nike

使用 Spark 2.1(在 Databricks 上),我有一个表,由于从 .CSV 文件导入,它有一个 String 类型的列。在对该表的 SELECT 查询中,我试图在数学运算中使用列值之前将该列的值转换为整数。我一直无法找到正确的 Spark SQL“函数”来执行此操作。

下面是 SQL 的示例。 “TO_NUMBER”不适用于两个字符串中的任何一个; Sum_GN_POP 或 Count1:

SELECT name AS geohashPrefix3, TO_NUMBER(Sum_GN_POP) AS totalPopulation, TO_NUMBER(Count1) AS landMass
FROM wayne_geohash3
WHERE (LENGTH(name) = 3)

如果我能找到这方面的文档,那将会很有帮助。我也想用其他类型进行其他类型的转换(或强制转换)。非常感谢任何关于这两者或其中之一的指导。

最佳答案

您可以将其设为 Integer来自 csv文件使用选项 推断架构 像这样 :

val df = spark.read.option("inferSchema", true).csv("file-location")

话虽如此: inferSchema 选项有时会出错,并将类型设置为 String .如果是这样,您可以使用 cast运算符(operator)在 Column
数据框/数据集实现:
val df2 = df.withColumn("Count1", $"Count1" cast "Int" as "landMass").withColumn("Count1", $"Sum_GN_POP" cast "Int" as "totalPopulation")

SQL 实现:
SELECT name AS geohashPrefix3, CAST(Sum_GN_POP as INT) AS totalPopulation, CAST(Count1 AS INT) AS landMass
FROM wayne_geohash3
WHERE (LENGTH(name) = 3)

关于sql - 如何将 String 值转换(或强制转换)为 Integer 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45898806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com