sql >> データベース >  >> RDS >> Mysql

geoDataFrameをMySQLにインポートするにはどうすればよいですか?

    多くのことを試した後、to_sql関数が機能するための正しいMySQL構文を生成していないことに気付きました。また、wkbに変更するアプローチでは、テキストをそのままにしておくと、MySQLはその列をジオメトリとして認識しませんでした(質問の画像を参照)。

    私にとってうまくいったのは、ジオメトリフィールドを文字列に変更し、Pythonで更新して、次のようにすることでした。

    その後、以下のコードを使用して、データフレームをMySQLに送信し、テーブルを更新してジオメトリ列を設定しました。

    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. ユーザーごとに最新のエントリを取得する

    2. TCLモードでSQLiteクエリ結果をフォーマットする方法

    3. オートコンプリートフィールド用の同様のUTF-8文字列

    4. liquibaseに挿入クエリのチェンジセットを定義する