目的 何十万行のCSVやTSVをPowerBI DesktopやSQL Server SSISで読み込むのですが、不要な列があったり、データ量が多いので、開発時はデータを少なくしたい。 Windows標準機能で実施したい。 やること 2つにわけて記載 Powershellで(TSV/CSV)ファイル(S-JIS)から必要な列のみを取り出して、(先頭/末尾)からN行とりだして、別な(TSV/CSV)ファイルへ出力 1について以下を実装 抽出するカラム指定をパラメータ化 区切り文字をパラメータ化 (先頭/末尾)とN行をパラメータ化 対象ファイルをスクリプトへドラッグドロップで実行 対象ファイルと同一フォルダ内へファイル名の末尾に「_Result」を追記して保存) 処理対象ファイル 今回のサンプルはTSVファイルは下図のような9列。 PersonID、adult name、profile_path、biography、homepage、birthday、deathday、place_of_birth サンプル1の基本処理内容 1行目 import-csvで読み込む -Encoding Default でS-JIS指定 -Delimiter "`t" で区切り文字としてタブを指定 -header @(1..9) でTSVのヘッダーとして1,2,3・・・,8,9を追加 select "1","3" で列名(4で追加)が1、3を抽出 export-csv で「TMDbPersons_Select.txt」に出力 2行目 get-content で1で作成したTSVを参照 -totalcount で先頭から10行抽出 select -skip 2 で先頭から2行をスキップ foreach {$_.Replace('"','')} で「"」を削除 out-file で「TMDbPersons_Result.txt」に出力 サンプル1(列位置で指定する) import-csv C:\Users\aaat\Desktop\TMDbPersons.txt -Encoding Default -Delimiter "`t" -header @(1..9
コメント
コメントを投稿