0

Blaze とローカルの Spark インスタンスを使用して、かなり簡単なことをしようとしています。blaze の into() を使用して csv ファイルをロードし、blaze の by() を使用する

Python 3.4
Spark 1.4.0
Blaze 0.8.0

csv (シンプル.csv)

   id,car
    1,Mustang
    2,Malibu
    3,Mustang
    4,Malibu
    5,Murano

コード

mport blaze as bz
rdd = bz.into(sc,"simple.csv")
simple = bz.Data(rdd)
simple.count()  #gives me 5 so far so good
bz.by(simple.car, count=simple.id.count()) #throws an error
AttributeError: 'InteractiveSymbol' object has no attribute 'car'

ここで何が起こっているかについてのアイデアはありますか?

サイドノート; これは動作します

simple_csv = bz.Data("simple.csv")
bz.by(simple_csv.car, count=simple_csv.id.count())
    car     count
0   Malibu  2
1   Murano  1
2   Mustang 2

そして、これもそうです

simple_csv.car.count_values()
    car count
0   Malibu  2
2   Mustang 2
1   Murano  1

それをSparkに「ロード」する方法が必要ですよね?

4

1 に答える 1

1

. _ SchemaRDD_ SQLContext_ RDD_ s には、操作を成功させるために必要な名前付きの列がありません。これが、 に属性がなく、 を作成する過程で取り除かれた理由です。Jupyter コード セルでこれを実行します。SparkContextRDDbyInteractiveSymbolcarRDD

import pyspark
from pyspark.sql import SQLContext

sc = pyspark.SparkContext()
sqlContext = SQLContext(sc)

from odo import odo
simple = odo('simple.csv', sqlContext)
simple.count()

オブジェクトを生成pyspark.sql.dataframe.DataFrameし、Spark ドライバーでプログラムを実行して行をカウントします。

>>> 5

この時点で、前に試みたように group-by を計算できるはずです。

import blaze as bz
bz.by(simple.car, count=simple.id.count())

しかし。Blaze少なくとも私にとっては、今日の時点で、0.9.0Spark 1.6 と Spark 1.4.1 の両方で Blaze を実行することに問題があります。おそらく、これはあなたが最初に抱えていた問題と同じではありませんが、私が有効な解決策にたどり着くのを妨げています. Jupyter をドロップして、pyspark直接セッションで実行してみました。自分で行うには、上記の行のいくつかを省略できます。これは、andpysparkが自動的に作成されるためです。scsqlContext

$ pyspark
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 1.4.1
      /_/

Using Python version 2.7.11 (default, Dec  6 2015 18:57:58)
SparkContext available as sc, HiveContext available as sqlContext.

from odo import odo
simple = odo('simple.csv', sqlContext)
import blaze as bz
bz.by(simple.car, count=simple.id.count())

これにより、エラーが発生します。このようなインタラクティブなビューを取得しようとしてsimpleも、エラーが発生します。

simple

とにかく、Spark 1.6 のサポートのアップグレードに関連して、Github の Blaze プロジェクトでいくつかの活動があるようです。その時点でこの問題が修正されることを願っています。

于 2016-01-25T00:38:22.667 に答える