Spark
Python3

Sparkチートシート

カラムが存在するかどうか知りたいとき

def has_column(df, col):
    df.createOrReplaceTempView('df')
    try:
        spark.sql("""select {0} from df""".format(col))
        return True
    except :
        return False

if has_column(dataframe, "hogehoge"):
    print("yes")
else:
    print("no")

pythonライブラリを全ノードに配布したいとき

必要なpyをdependencies.zipに圧縮する。このとき、ライブラリがdependencies.zipのトップに来るようにすること

spark-submit --py-files dependencies.zip main.py

次のようにすると全ノードにpip install したものを配布できる
https://stackoverflow.com/questions/36461054/i-cant-seem-to-get-py-files-on-spark-to-work
http://blog.danielcorin.com/code/2015/11/10/pyspark.html

pip install -t dependencies -r requirements.txt
cd dependencies
zip -r ../dependencies.zip .