在pyspark Dataframe中如何计算列的数量?

9
我有一个包含15列的数据框(4列是分类变量,其余为数值变量)。
我已经为每个分类变量创建了虚拟变量。现在我想找出新数据框中的变量数量。
我尝试计算printSchema()的长度,但得到的是NoneType
print type(df.printSchema())


你尝试过什么?你在网上搜索过吗? - Vivek Kumar
1
尝试检查len(df.columns)。 - Rakesh Kumar
1个回答

23
你正在寻找错误的方法,这里提供一个示例来说明,关于printSchema:
df = sqlContext.createDataFrame([
    (1, "A", "X1"),
    (2, "B", "X2"),
    (3, "B", "X3"),
    (1, "B", "X3"),
    (2, "C", "X2"),
    (3, "C", "X2"),
    (1, "C", "X1"),
    (1, "B", "X1"),
], ["ID", "TYPE", "CODE"])


# Python 2:
print len(df.columns) #3
# Python 3
print(len(df.columns)) #3

columns 提供了所有列的列表,我们可以检查其长度。而 printSchema 则打印 df 的模式,其中包含列及其数据类型,例如下面:

root
 |-- ID: long (nullable = true)
 |-- TYPE: string (nullable = true)
 |-- CODE: string (nullable = true)

在pyspark控制台上,len(df.columns)就足够了,不需要使用print。 - kartik
真的希望有像.length或.size等面向对象的解决方案。 - Gang Su
1
RDD怎么办?如果我有RDD而不是dataframe,如何显示列数@Rakesh Kumar @chuck - Mohit Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接