to_number

Převést řetězec 'col' na číslo podle formátu 'format'. Vyvolá výjimku, pokud převod selže.

Formát se může skládat z následujících znaků bez rozlišování velkých a malých písmen:

  • 0 nebo 9: Určuje očekávanou číslici mezi 0 a 9. Sekvence 0 nebo 9 ve formátovacím řetězci odpovídá sekvenci číslic ve vstupním řetězci. Pokud sekvence 0/9 začíná číslem 0 a je před desetinnou čárkou, může se shodovat pouze s posloupností číslic se stejnou velikostí. V opačném případě může sekvence za desetinnou čárkou za číslem 9 nebo za desetinnou čárkou odpovídat sekvenci číslic, která má stejnou nebo menší velikost.
  • '.' nebo 'D': Určuje pozici desetinné čárky (volitelné, povoleno pouze jednou).
  • ',' nebo 'G': Určuje pozici oddělovače seskupení (tisíce) (,). Musí existovat 0 nebo 9 vlevo a vpravo od každého oddělovače seskupení. Sloupec musí odpovídat oddělovači seskupení, který je relevantní pro velikost čísla.
  • $: Určuje umístění znaménka měny $. Tento znak lze zadat pouze jednou.
  • 'S' nebo 'MI': Určuje pozici znaménka -nebo +(volitelné, povoleno pouze jednou na začátku nebo na konci řetězce formátu). Všimněte si, že "S" umožňuje -, ale MI ne.
  • "PR": Povoleno pouze na konci řetězce formátu; určuje, že sloupec označuje záporné číslo s zalomenými hranatými závorkami.

Odpovídající funkci SQL Databricks vizte funkceto_number.

Syntaxe

from pyspark.sql import functions as dbf

dbf.to_number(col=<col>, format=<format>)

Parametry

Parameter Typ Description
col pyspark.sql.Column nebo str Vstupní sloupec nebo řetězce
format pyspark.sql.Column nebo str, optional formát, který se použije k převodu číselných hodnot.

Examples

df = spark.createDataFrame([("$78.12",)], ["e"])
df.select(to_number(df.e, lit("$99.99")).alias('r')).collect()