J'ai une colonne décimale "TOT_AMT" définie comme type "octets" et le type logique "décimal" dans mon schéma avro.Comment convertir les octets de colonne (avec le type logique en décimal) en Avro en décimal?
Après avoir créé la trame de données à l'aide d'étincelle databricks étincelle Avro, quand j'ai essayé de résumer la TOT_AMT colonne en utilisant la fonction somme, il jette « somme fonction requiert les types numériques ne binaryType » erreur.
La colonne est définie comme ci-dessous dans le schéma avro,
name = "TOT_AMT", "type": [ "null", { "type": "octets", "logicaltype": "décimale" , "précision": 20 "échelle": 10}]
Je crée dataframe et résumé comme,
val df=sqlContext.read.format("com.databricks.spark.avro").load("input dir")
df.agg(sum("TOT_AMT")).show()
Il semble que la valeur décimale est lue comme binaryType lors de la création dataframe. Dans un tel cas, comment pouvons-nous effectuer des opérations numériques sur ces colonnes décimales? Sera-t-il possible de convertir ce tableau d'octets en BigDecimal, puis d'effectuer des calculs.
Pouvez-vous fournir un code ou un aperçu schématique de vos données? Surtout l'état de votre RDD actuel avant la réduction pourrait être important. La typographie explicite fera probablement l'affaire. – dennlinger