Преобразование / преобразование массива в целое число в python - PullRequest
0 голосов
/ 19 июня 2020

Следующий код:

    polygon_test = spark.sql("""SELECT
  CAST(geojson4.geometry AS Double) AS geometry
 ,geojson4.properties
 ,geojson4.type
FROM geojson4
""")

Выдает следующую ошибку:

org.apache.spark.sql.AnalysisException: cannot resolve 'CAST(geojson4.`geometry` AS DOUBLE)' due to data type mismatch: cannot cast struct<coordinates:array<array<array<string>>>,type:string> to double; line 2 pos 2;

Ошибка явно связана с тем, что databricks не может преобразовать поле geometry как двойное.

Может ли кто-нибудь сообщить мне, возможно ли использовать ARRAYs как любое число. В исходном формате он выглядит как строка, см. Ниже

геометрия: координаты структуры: элемент массива: элемент массива: элемент массива: строка тип: свойства строки: struct lat_max: double lat_min: double long_max: double long_min: double pid: длинный тип: строка

1 Ответ

0 голосов
/ 02 июля 2020

Вы не можете преобразовать массив как число, но вы можете извлекать значения из массива, используя квадратные скобки, например:

SELECT geojson4.geometry[0] AS geometry,
   geojson4.properties, geojson4.type
FROM geojson4

, но вам нужно знать, какой элемент вы извлекаете - первый, второй и т.д. c.

...