2016-09-07 7 views
0
from pyspark.sql.functions import split, explode 

sheshakespeareDF = sqlContext.read.text(fileName).select(removePunctuation(col('value'))) 

shakespeareDF.show(15, truncate=False) 

データフレームは、次のようになります。ワード数: '列' オブジェクトが呼び出すことはできません

enter image description here

ss = split(shakespeareDF.sentence," ") 
shakeWordsDFa =explode(ss) 

shakeWordsDF_S=sqlContext.createDataFrame(shakeWordsDFa,'word') 

私が間違っているの何任意のアイデア?ヒントにはColumn is not iterableと記載されています。

どうすればよいですか? shakeWordsDFaをデータフレームに変更して名前を変更したいだけです。

+1

これはedxのCS110X HWです – eliasah

答えて

2

だけを選択し使用します。

shakespeareDF = sc.parallelize([ 
    ("from fairest creatures we desire increase",), 
    ("that thereby beautys rose might never die",), 
]).toDF(["sentence"]) 

(shakespeareDF 
    .select(explode(split("sentence", " ")).alias("word")) 
    .show(4)) 

## +---------+ 
## |  word| 
## +---------+ 
## |  from| 
## | fairest| 
## |creatures| 
## |  we| 
## +---------+ 
## only showing top 4 rows 

スパークSQL列のデータ構造ではありません。データに束縛されておらず、具体的な文脈で評価された場合にのみ意味があります。DataFrameこのようにして、Columnsはもっと機能のように動作します。

+0

すてきな説明 – cdarlint

関連する問題