弘和(55)5この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。不要な制御文字コードを取り除くデータ分析系の案件をやっているといろんな種類のCSVもしくはTSVファイルと連携することがあります。Redshiftへデータロードする際は文字コードをUTF-8にすることが必須条件となるので、文字コードの変換はよく行います。上記のパターンについてはコンポーネント側のオプション等で吸収できるので、連携フォーマットの仕様さえ分かれば問題ないですが、中には制御文字コード等が入ってくるケースもあります。今回はその制御文字コードのEOF(ファイル終端コード)を取り除くジョブを作ってみました。利用頻度は少ないかもしれませんが、作ったので備忘録として。Textで開いた場合にEOFがSUBと表示されています。odコマンドで一応コードとキャラクタ表示をさせたものが以下で、一番最後に1aのコードが入っています。これがEOFのコードとなります。今回はファイルの読み込みにtFileInputDelimitedコンポーネントは使わずtFileInputFullRowコンポーネントを使います。このコンポーネントはテキストの1行を1データとして入力し後続のコンポーネントへ渡すためのものです。後続のコンポーネントには文字コード置換させるためのtReplaceコンポーネントを使います。通常の文字コード置換であればtReplaceコンポーネントの後続にtExtractDelimitedFieldsコンポーネントでデータを1行表現からCSV区切り表現へ変換するもので受けて最終的にtFileOutputDelimitedでファイル出力すればいいのですが、その状態でジョブを実行するとEOFが含まれている行が空行として無駄に出力されてしまいます。これで特に問題があるわけではないのですが、綺麗にしたいのでtReplaceコンポーネントとtExtractDelimitedFieldsコンポーネントの間にもう一つtFilterRowコンポーネントを挟んで文字置換後に空行の場合は出力しないというものを追加した形でジョブを作成してちょっとスマートにしたいと思います。実際にジョブを作成してみる完成形は以下のような感じになります。基本設定でEOFの含まれたCSVを指定します。基本設定で詳細モードにチェックし、正規表現パターンを登録します。String(Character.toChars(0x1a))を指定します。基本設定で条件を指定します。tFilterRowコンポーネントは、指定したカラムの条件に一致する行だけを抽出するものです。使い方はフィルタリング条件のカラム名を「入力カラム」に、比較条件を「オペレータ」に、比較値を「値」に入力します。CSVを書き出してあげれば完成です。ジョブを実行する正常にジョブが終了しました。Textでみた状態SUBが取り除かれていることが確認できます。一応odコマンドでコードとキャラクタ表示をさせたものでも確認。最後の1aが正しく取り除かれていることが確認できます。0000334$まとめEOFを取り除くということ自体はあまり需要があるかどうかはわかりませんが、EOF以外にもさまざまな制御コードを取り除く必要があるケースも出てくるかと思いますので、その際はtFilterRowの条件部分を変更すれば利用用途はあるのかなと思います。553,511まだプロフィールが設定されていません。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。