Pysparkで25億レコードのハイブテーブルを使用しようとしています。 テーブルに不正な形式のデータや何らかの形で「悪い」データがあるとします。 私は、Pythonのバージョン2.6.6でスパークバージョン1.6.2を使用しています:表を読むためにpyspqrk sqlハイブテーブルの不良データ
from pyspark import SparkContext, SparkConf
from pyspark.sql import HiveContext
with SparkContext() as sc:
tbl = “mydb.mytable”
hc = HiveContext(sc)
df = hc.table(tbl)
。 私は
df.take(5)
を実行しようと、私は無期限とValueError例外と会い、そして
df.count()
ハング。私はテーブルをサンプリングした場合 しかし、:
dfsamp = df.sample(False, 0.0000001, 42)
私はすべての問題を持っているように見えていないの周りに220行、とのデータフレームを取得します。 Hive CLIからフルテーブルにアクセスすると正常に動作しているようです。 Sparkが何らかの理由で処理できないレコードがいくつかあると仮定しています。 Hiveテーブルをpysparkデータフレームとしてロードした後で、「良い」行だけが残るようにフィルタリングする方法があるかどうかは疑問です。あるいは、Hiveテーブルをpysparkにロードする前に、それが "良い"データしか含んでいないことを確かめることができるような方法で、前処理できる方法がありますか? ヘルプ/洞察力を賞賛します。
私はValueErrorに関する情報を提供していません。ここでは、return datetime.date.fromordinal(v + self.EPOCH_ORDINAL)ValueError:( '序数> = 1'、<関数 ... –
crabmanbrian
必要に応じて[編集]リンクを使用して質問を更新できます。 – user7337271