Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 将数据帧转换为RDD_Pandas_Apache Spark_Dataframe_Pyspark_Apache Spark Sql - Fatal编程技术网

Pandas 将数据帧转换为RDD

Pandas 将数据帧转换为RDD,pandas,apache-spark,dataframe,pyspark,apache-spark-sql,Pandas,Apache Spark,Dataframe,Pyspark,Apache Spark Sql,我可以将数据帧转换为RDD吗 如果isinstance(数据2,pd.DataFrame): 打印“是数据帧” 其他: 打印“不是数据帧” 是数据帧吗 下面是尝试使用.rdd时的输出 dataRDD=data2.rdd 打印数据RDD AttributeError回溯(最近一次调用) 在() ---->1 dataRDD=data2.rdd 2打印数据RDD /usr/lib64/python2.7/site-packages/pandas/core/generic.pyc in_u___g

我可以将数据帧转换为RDD吗

如果isinstance(数据2,pd.DataFrame):
打印“是数据帧”
其他:
打印“不是数据帧”
是数据帧吗

下面是尝试使用.rdd时的输出

dataRDD=data2.rdd
打印数据RDD
AttributeError回溯(最近一次调用)
在()
---->1 dataRDD=data2.rdd
2打印数据RDD
/usr/lib64/python2.7/site-packages/pandas/core/generic.pyc in_u___getattr____(self,name)
2148返回自我[姓名]
2149 raise AttributeError(“%s”对象没有属性“%s”
->2150(类型(自身)。\名称\名称))
2151
2152定义设置属性(自身、名称、值):
AttributeError:“DataFrame”对象没有属性“rdd”
我想使用Pandas Dataframe而不是sqlContext来构建,因为我不确定Pandas DF中的所有函数是否都可以在Spark中使用。如果不可能,是否有人可以提供使用Spark DF的示例

我可以将数据帧转换为RDD吗

是的,你能做到。熊猫数据帧

pdDF = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v"))
print pdDF

##      k  v
## 0  foo  1
## 1  bar  2
spDF = sqlContext.createDataFrame(pdDF)
spDF.show()

## +---+-+
## |  k|v|
## +---+-+
## |foo|1|
## |bar|2|
## +---+-+
可以转换为Spark数据帧

pdDF = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v"))
print pdDF

##      k  v
## 0  foo  1
## 1  bar  2
spDF = sqlContext.createDataFrame(pdDF)
spDF.show()

## +---+-+
## |  k|v|
## +---+-+
## |foo|1|
## |bar|2|
## +---+-+
之后,您可以轻松访问底层RDD

spDF.rdd.first()

## Row(k=u'foo', v=1)
不过,我认为你的想法是错误的。熊猫数据帧是一种局部数据结构。它在驱动程序上本地存储和处理。没有数据分发或并行处理,也不使用rdd(因此没有
rdd
属性)。与Spark DataFrame不同,它提供随机访问功能

Spark DataFrame是在后台使用RDD的分布式数据结构。可以使用原始SQL(
sqlContext.SQL
)或类似SQL的API(
df.where(col(“foo”)==“bar”).groupBy(col(“bar”)).agg(sum(col(“foobar”)))
)访问它。没有随机访问,它是不可变的(没有与Pandas
inplace
等效的)。每次转换都返回新的数据帧

如果不可能,是否有人可以提供使用Spark DF的示例

不是真的。就目前而言,这远不是一个宽泛的话题。Spark有非常好的文档,Databricks提供了一些额外的资源。对于初学者,请检查以下内容: