J'essaie d'utiliser Spark (PySpark) pour analyser des données stockées dans des GeoTiff multibande. Je suis toujours un peu un débutant Spark.Données PySpark et Raster (GeoTiff)
Configuration:
Les GeoTIFFs sont eux-mêmes assez petit pour fonctionner en python pur - je suis spécifiquement GDAL pour lire les données. Je crée ensuite des dataframes et je fais l'analyse.
Cependant, l'analyse prend un certain temps. Et, sur une base récurrente, j'aurai des centaines de géotiffs à analyser - entrer dans PySpark.
Problème:
J'ai écrit du code qui me permet de lancer l'analyse sur un pseudo-cluster local. Cependant, il échoue avec le cluster approprié car les données stockées sur le nœud maître ne peuvent pas être lues localement par les nœuds de travail.
HDFS devrait venir à la rescousse, cependant sc.textFile(..)
renvoie le contenu brut non traité du géotiff qui n'est pas très utile.
Je pourrais pré-traiter les données pour transformer les géotiffs en csv mais le surcoût supplémentaire pourrait ne pas valoir la peine.
Les deux solutions que j'avais espoir de trouver étaient
- Une méthode d'allumage, permet de l'appeler
sc.rasterFile(...)
, qui lirait un geotiff dans une trame de données d'allumage ou RDD La possibilité d'accéder hdfs de méthodes python pures. Quelque chose comme ~
gdal.Open("hdfs://...", gc.GA_ReadOnly)
Questions:
- Ai-je raison de supposer que ni des solutions ci-dessus sont possibles?
- Existe-t-il d'autres outils/méthodes/API pour travailler avec TIFF dans Spark?
Merci!