sql >> Database >  >> RDS >> Mysql

Hoe kan ik een geoDataFrame importeren in MySQL?

Na veel dingen geprobeerd te hebben, merkte ik dat de functie to_sql niet de juiste MySQL-syntaxis genereerde om te kunnen werken. Ook met de aanpak om te veranderen naar wkb herkende MySQL die kolom nog steeds niet als geometrie als ik de tekst laat zoals hij is (zie afbeelding in de vraag).

Wat voor mij werkte, was om het geometrieveld te veranderen in string en het bij te werken in python, zodat het er als volgt uit zou zien:

Daarna ging ik verder met het gebruiken van de onderstaande code, waar ik het dataframe naar MySQL stuurde en vervolgens de tabel bijwerkte om de geometriekolom in te stellen:

regions.to_sql('pr_regions', con=conn, schema='eq_pr_db',
               if_exists='replace', index=False)

#add column type Polygon

conn.execute('''ALTER TABLE `eq_pr_db`.`pr_regions` 
                ADD COLUMN `geom` Polygon;''')

#populate new column by applying the ST_GeomFromText function to transform the string to geometry type.

conn.execute('''UPDATE `eq_pr_db`.`pr_regions`
                SET geom =  ST_GeomFromText(geometry) ;''')



  1. Waarom is executemany traag in Python MySQLdb?

  2. Wijzig datumnotatie in mySql-databasetabel

  3. Geneste lus in opgeslagen mysql-procedure

  4. Relationele indeling in mysql zonder geaggregeerde functies?