当前位置: 首页 > 知识库问答 >
问题:

在PySpark中将很长的字符串强制转换为整数或长整数

戈建白
2023-03-14

共有1个答案

松钊
2023-03-14

长话短说,你根本不知道。SparkDataFrame是一个JVM对象,它使用以下类型映射:

  • integertype->max_value等于2**31-1
  • 的integer
  • longtype->longmaxvalue等于2**63-1

您可以尝试使用DecimalType以允许的最大精度(38)。

df = sc.parallelize([("9" * 38, "9" * 39)]).toDF(["x", "y"])
df.select(col("x").cast("decimal(38, 0)")).show(1, False)

## +--------------------------------------+
## |x                                     |
## +--------------------------------------+
## |99999999999999999999999999999999999999|
## +---------------------------------------
df.select(
    col("y").cast("decimal(38, 0)"), col("y").cast("double")).show(1, False)

## +----+------+
## |y   |y     |
## +----+------+
## |null|1.0E39|
## +----+------+
 类似资料:
  • 问题内容: 我有一个使用long作为ID的定制类。但是,当我使用ajax调用操作时,我的ID被截断并且丢失了最后2个数字,因为javascript处理大数字时会失去精度。我的解决方案是给我的JavaScript字符串,但是ID必须在服务器端保留很长时间。 有没有一种方法可以将属性序列化为字符串?我在寻找某种属性。 控制者 模型 JSON结果 问题答案: 您可能可以创建一个自定义并将其应用于您的媒体

  • 问题内容: 有没有一种方法可以将整数转换为PHP中的字符串? 问题答案: 您可以使用该函数将数字转换为字符串。 从维护的角度来看,它显然是您正在尝试做的事情,而不是其他一些更深奥的答案。当然,这取决于您的上下文。

  • 我想有一个JPQL查询,它可能看起来像: 其中a.num是一个整数。我想将此转换为字符串以使用类似的条件。然而,上述转换在JPQL中不起作用。我该如何实现这一点?

  • 谢谢你的时间。 我试图将Arduino IDE的serialEvent()中从串行端口读取的“字符串”转换为具有精确表示的整数值。 例如,如果字符串myString=200,那么int myInt应该是200。 我已经有点成功,但无法将字符串转换为超过255的精确int表示。 我尝试过的解决方案: 1) 用过。Arduino中的toInt()函数。 2) 使用了“atoi”和“atol”函数。 3

  • 如何将字符串值转换为整数,并将转换后的值乘以整数,这样我就可以得到300.00的结果。见下面的例子- 如果我像这样编码,那么我就会出错-

  • 问题内容: 如何在JavaScript中将字符串转换为整数? 问题答案: 最简单的方法是使用本机函数: 如果这对您不起作用,则有 parseInt , 一元加号 , 带有floor的parseFloat 和 Math.round 方法。 parseInt: 一元加号,如果您的字符串已经是整数形式: 如果您的字符串是浮点数或可能是浮点数,并且您想要一个整数: 或者,如果您要多次使用Math.floo