2016-10-25 12 views
1

私はポイントデータでいっぱいの20GBファイルを持っています。データが正しくエクスポートされておらず、全体にタブスペースがあります。私が意味することは、このファイルはこのようなものですMySQLがファイルをタブを無視して読み込みます

POINT( -38.071489872015  140.99467884981), 
POINT( -38.071489872015  140.99525003481), 
POINT( -38.071489872015  140.99582121982), 
POINT( -38.071100465759  140.99147345891), 
POINT( -38.071100465759  140.99204464087), 

最初と最後のタブスペースを無視する方法はありますか?

私の現在の負荷データのスクリプトが

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/import.txt' 
INTO TABLE tblImport 
LINES TERMINATED BY ',' 
(@pointData) 
SET 
pointData = GeomFromText(@pointData); 

ですが、私はエラー

[Err] 3037 - Invalid GIS data provided to function st_geometryfromtext. 

おかげ

+0

http://stackoverflow.com/questions/13979169/how-toを-remove-tabs-at-start-and-end-of-varchar-field-in-mysql – Rene

+0

@Reneこれは役に立たないので、インポートが失敗して、対応する表データがない。 – msanford

答えて

0

sedは、テキストデータを操作するための非常に効率的なツールになってしまいます。インポートが失敗した場合は、クリーニングしてmysqlにパイプするのではなく、クリーンデータセットを保存することもできます。

20行をきれいにする

sed $'s/\t*//g' point_data.sql | head -n 20 > point_data_no_tabs_short.sql 

でそれを試してみてはあなたが期待するものを手に入れることを確認してください。

それが動作する場合は、インプレースファイル全体清掃:

sed -i.bak $'s/\t*//g' point_data.sql 

または洗浄コピー作成:

sed $'s/\t*//g' point_data.sql > point_data_no_tabs.sql 
関連する問題