忍者ブログ

【pyspark】カラム毎の最大文字数を調べる

2021年09月06日 22時26分31秒
カラム毎の最大文字数を調べるサンプル


from pyspark.sql.functions import *
d = [{'name': 'Tanaka', 'remark': '123'},{'name': 'Satou', 'remark': '12345'}]
df = spark.createDataFrame(d)
df = df.select(
    length('name'),
    length('remark')
).groupBy().agg(
    max('length(name)'),
    max('length(remark)')
)
df.show()
+---------------------+-----------------------+                                         
|max(length(name))|max(length(remark))|
+---------------------+-----------------------+
|                           6|                             5|
+---------------------+-----------------------+
PR

【pyspark】groupbyして、グループ毎にカンマ区切りで文字列結合

2021年09月05日 22時59分11秒
groupbyして、グループ毎にカンマ区切りで文字列結合するサンプル


from pyspark.sql.functions import *
d = [{'name': '田中', 'age': 1},{'name': '佐藤', 'age': 2},{'name': '鈴木', 'age': 1}]
df = spark.createDataFrame(d)
df.show()
+----+-----+
| age|name|
+----+-----+
|     1|  田中|
|     2|  佐藤|
|     1|  鈴木|
+----+-----+

df = df.groupBy('age').agg(concat_ws(',', collect_list('name')).alias('test'))
df.show()
+---+---------+
|age|       test|
+---+---------+
|   1|田中,鈴木|
|   2|       佐藤|
+---+---------+

PythonでOutlookの複数のmsgファイルから添付ファイルを取得

2021年05月22日 19時18分00秒
Outlookで受信したメールをローカルの特定フォルダにコピペ。
コピペした複数のメール(.msg)から、添付ファイルを取り出したい。
検索してもVBAでのサンプルコードがあるくらいで、フリーのツールなどが見つからない。
仕方ないので自前でPythonで作成。

import os
import win32com.client

MSG_PATH = r"C:\msgファイルを置いてるフォルダ"
files = os.listdir(MSG_PATH)
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
for file in files:
    file_path = MSG_PATH + '/' + file
    msg = outlook.OpenSharedItem(file_path)
    for attachment in msg.Attachments:
        attachment.SaveAsFile("C:添付ファイル保存先フォルダ/" + attachment.FileName)



 | HOME |