ブログ (77)


Ubuntu上でnetworkxの文字化けを解消する

networkxの文字化け問題について、ググってるとMacでの解決方法ばかりだったのでUbuntuでの解決方法を書きます。

Ubuntuでの日本語フォントの調べ方は「fc-list|grep japanese」コマンドを打てば日本語フォントとその名前が出てきます。これを使えばOK

私の場合はTakaoPGhothicが出てきました。

 

 




AzureStorageにデータが入らない時は

Azure Storage Tableにデータを入れようと思って.NetSDKからデータを投げても「400不正な要求です」のようなメッセージしか出てこなくてなぜ入らないかわからなかった時のチェックリスト

TableEntityクラスの派生にしているか

挿入する型はTableEntityクラスの派生型である必要があります。

加えて、引数なしのコンストラクタが作成されている必要があります。

不正な型が入っている

挿入するクラスのメンバーの型に特殊なのが入っているとエラーになります。

普通のプリミティブ型(intやdoubleなど)は普通にinsertできるはずです

不正な文字列が入っている

私はこれでした。

例えば「”/”」スラッシュなどは不正な文字列とされています。

これらが入っていると不正な文字列が入っているとエラーが出るわけではなくて「要求が不適切です」としかひょうじされないのでとても困った。

解決方法は別の文字列に置換しましょう。

どうやってわかったか

Storage ExplorerでImportしてみて初めて気づきました。

StorageExplorerはエラー文をちゃんと出してくれて最高です。




Raspberry piにAnacondaをインストールする

ラズパイにpython環境を作りたくてAnacondaをインストールしようと思うわけですが、ラズパイはARM CPUなので通常のAnacondaは入りません。

「Raspberry pi Anaconda」でググると公式解説ページが出てきますがこの通りインストールするとopensslのインストールでエラーがでます。

エラー内容はこんな感じです

https://github.com/conda/conda/issues/1087

これはMinicondaのバージョンが古いことが起因しているのでMinicondaの最新バージョンを探します。

Minicondaのリポジトリ(https://repo.continuum.io/miniconda/)からARMで検索して一番新しい物をインストールします。

この記事を書いた時の最新バージョンは以下のものでした。

https://repo.continuum.io/miniconda/Miniconda-3.16.0-Linux-armv7l.sh

このスクリプトを実行すればRaspberry piにMinicondaがインストールされます




neo4jをpythonから利用してGraphDBで遊ぶ

graphdbをpythonから遊びます。

利用するグラフDBはneo4jで、操作するクライアントはpythonのneo4jrestclientパッケージを利用しました。

OSはArchlLinuxでやっていますが他の環境でもまあ同じだと思います。

インストール

archのAURにあったのでyaourtからインストールします。

パッケージマネージャからインストールできない場合、公式サイトからtar.gzで圧縮されたバイナリをダウンロードします。

ポート設定をいじります。

dbms,connector.http.addressはデフォルトでは0.0.0.0となっていますがリモートサーバーで動かしているならそのIPをいれましょう。

ポート番号はデフォルトの7474でいいと思いますが場合によってはポートが既にバインドされていると言われるので変更する必要がある場合は変更しましょう。

再起動

これでhttp://{server ip}:7474にアクセスしてneo4jのポータルが表示されればOKです。

パスワードを設定しましょう。

pythonからデータをいれる

neo4jrestclientをインストールします。

以下のコードでデータを入れます。

あとは以下のcypher queryをポータルからうちこめばデータを表示できます。

データをすべて消去する場合は以下のクエリ

参考文献




EventHubからStreamAnalyticsへ流してTableStorageに出力する

EventHubへのデータの流し方については前の記事を参考にしてください。

まずはStreamAnalyticsを作成し、入力の項目に作成したEventHubを設定します。

出力にはTableStorageを指定します。(あらかじめTableStorageを作成しておいてください)

パーティションキーと行キーについては、イベント要素を一意に決定する2つのキーを指定します。

この2つのキーはEventHubに挿入するイベントのjsonに含まれているキーである必要があります。

入力と出力が設定できたら、クエリを指定します。

INTOには出力の名前、FROMには入力の名前、SELECTは今回そのままデータを出力に流すので*としておきます。

ここまでできたら概要から[開始]を押し、StreamAnalyticsを実行します。

StreamAnalyticsを実行できたら、StorageExplorerを使ってTableStorageを見ましょう。

TableStorageの中身をみることができたらOKです。

 

続いでデータを挿入しましょう。

EventHubへのデータの挿入の仕方については前の記事を参考にしてください。

今回はこのようなデータを投げます。

データをEventHubに投げたら、TableStorageを見ましょう。

無事、StreamAnalyticsを介してデータの挿入ができました