中国工商銀行銀行で海外送金失敗

中国工商銀行という中国の銀行で個人のインターネットバンキングを開設すれば、海外送金が格安でできるということで申し込んで海外送金をしましたが、

 

「東京支店での処理が失敗しましたと画面上出て電話で問い合わせたら、工商銀行内部の送金審査に失敗したということ。え?俺何も悪いことしてないけど。。

原因は?と聞いたらそれは教えられませんと答えてくれた。

お。。お?!

 

 

Google BigQueryで日本語(漢字、ひらがな、カタカナ)を正規表現で検索する

ググっても以外に例がなかったので、こちらにメモとして残しておきます。

BQではre2というライブラリを使って正規表現をサポートしてますので、この辺の資料を参考にしました。

https://github.com/google/re2/wiki/Syntax

 

ひらがなを含んだものを検索する

 select
  name
from
  people
where
  REGEXP_CONTAINS(name, '\\p{Hiragana}')

 

カタカナを含んだものを検索する

select
  name
from
  people
where
  REGEXP_CONTAINS(name, '\\p{Katakana}')

 

漢字はこんな感じ 

select
  name
from
  people
where

  REGEXP_CONTAINS(name, '\\p{Han}')

 

 

 

Apache zeppelin起動してsparkのコードを動かそうとしたらエラー

zeppelin_home/bin/derby.logに以下のエラーが出ていたので、調べ居たらどうもzeppelin-daemon.sh stopしたにも関わらず残骸が残ってたのが原因でした。

 

zeppelin Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database

 

解決は以下のコマンドでzeppelinのプロセスをいったんkillしてから再起動したらなおりました。

 

pgrep -f 'zeppelin' | xargs kill

CDH 5.7.X 再インストールのメモ

基本的にはClouderaのホームページを参考にしていたが、

追加で以下のことを行わないとうまく再インストールできなかったので、メモ

Uninstalling Cloudera Manager and Managed Software

 

cloudera-scm-serverサービスの停止&アンインストール

# sudo service cloudera-scm-server stop

# sudo service cloudera-scm-server-db stop

# sudo /usr/share/cmf/uninstall-cloudera-manager.sh

# sudo rm -rf /opt/cloudera/parcel-repo/*

 

cloudera-scm-agent側のサービスの停止&アンインストール

# sudo service cloudera-scm-agent stop

# sudo apt-get purge 'cloudera-manager-*' avro-tools crunch flume-ng hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase-solr hive-hbase hive-webhcat hue-beeswax hue-hbase hue-impala hue-pig hue-plugins hue-rdbms hue-search hue-spark hue-sqoop hue-zookeeper impala impala-shell kite llama mahout oozie pig pig-udf-datafu search sentry solr-mapreduce spark-core spark-master spark-worker spark-history-server spark-python sqoop sqoop2 whirr hue-common oozie-client solr solr-doc sqoop2-client zookeeper

#sudo rm -rf /opt/cloudera/parcels/*

 

後は手順とおり再インストールすればOK

Spark sql で array_to_stringを自作する

やり方意外と簡単でした。

 

参考したページは

Using SparkSQL UDFs to Create Date Times in Spark 1.5

 

scala> import org.apache.spark.sql.functions.udf

scala> def arrayToString(array:Seq[String],separator:String) = array.mkString(separator)

scala> sqlContext.udf.register("array_to_string", arrayToString(_:Seq[String],_:String))

scala> sqlContext.sql("select array_to_string(array('aaa','bbb'),'@') x").collect.foreach(println)
[aaa@bbb]

ちゃんと動いた

ubuntu で kvmを構築する手順

必要なツールをinstall

$ sudo aptitude install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virtinst

isoファイルをダウンロード

$ wget http://releases.ubuntu.com/14.04/ubuntu-14.04.4-server-i386.iso

 

vmからもネットワーク接続できるようにブリッジを作成する

/etc/network/interfacesを以下のように編集する

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
auto br0

そしてネットワーク再起動

$ sudo ifdown eth0 && sudo ifup eth0

 

ブリッジ確認

$ brctl show

bridge name bridge id STP enabled interfaces
br0 8000.a0b3cce24d2c no eth0
vnet0

 

vmを作成する

$ sudo virt-install --name vm01 --ram 2048 --disk path=/var/lib/libvirt/images/vm01.img,size=30 --vcpus 1 --os-type linux --os-variant ubuntutrusty --network bridge=br0 --noautoconsole -c ubuntu-14.04.4-server-i386.iso --graphics vnc,port=5901,keymap='ja',listen=0.0.0.0,password=vnc

 

$ virsh list --all

Id Name State
----------------------------------------------------
2 vm01 running

 

上記でStateがshutdownになっていれば、以下のコマンドで起動する

$ virsh start vm01

 

そして、UltraVNCViewerでvm01に接続する

接続時指定するアドレスは「ホストOSのIP:ポートID」

パスワードは上で設定した'vnc'を入力

ポートIDは以下のコマンドで確認

$virsh vncdisplay vm01