OrderedMapSerializedKey
カッサンドラ構造をデータフレーム列にdict
として保存すると、この値/列を任意の人に転送できます。 Cassandraの行の実際のキーを知ることができない可能性があります(異なるキーが行に挿入される可能性があるため)。
私がテストしたソリューションは、あなただけのpandas_factory
funcitonを改善する必要があるので、ここで:
編集:私の唯一の最初(0番目)の行を置き換え以前のソリューションで
Cassandraのデータセット(rows
はすべてのタプルがカサンドラの行であるタプルのリストである)
from cassandra.util import OrderedMapSerializedKey
def pandas_factory(colnames, rows):
# Convert tuple items of 'rows' into list (elements of tuples cannot be replaced)
rows = [list(i) for i in rows]
# Convert only 'OrderedMapSerializedKey' type list elements into dict
for idx_row, i_row in enumerate(rows):
for idx_value, i_value in enumerate(i_row):
if type(i_value) is OrderedMapSerializedKey:
rows[idx_row][idx_value] = dict(rows[idx_row][idx_value])
return pd.DataFrame(rows, columns=colnames)
Cassandraマップフィールドの前後に最低1つの値があるかどうかを自動的にチェックするか、それに応じて手動で上記のスクリプトを手動で変更する必要があります。
素敵な日!
これは私のやり方と同じです。 –