我有一个包含三列的数据框,我正在尝试使用 Seaborn 库绘制线图,但它向我抛出一个错误,说'DataFrame' object has no attribute 'get'. 这是我的测试数据框
Age variable value
31 Overall 69.76751118
31 Potential 69.76751118
31 Growth 0
34 Overall 68.91176471
34 Potential 68.91176471
34 Growth 0
28 Overall 69.05803996
28 Potential 69.05803996
28 Growth 0.24643197
Run Code Online (Sandbox Code Playgroud)
这就是我在读取 csv 文件后尝试使用 seaborn 线图所做的
test = spark.read.csv("test.csv", inferSchema=True, header=True)
sns.lineplot(x = "Age", y = "value", hue = "variable", data = test)
Run Code Online (Sandbox Code Playgroud)
我得到的错误是这个
AttributeError: 'DataFrame' object has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)
但是,当我将数据框转换为 Pandas 数据框并使用完全相同的 seaborn 代码时
test_df = test.toPandas()
sns.lineplot(x …Run Code Online (Sandbox Code Playgroud) 我在Hadoop的YARN上运行Spark.这种转换如何运作?在转换之前是否会发生collect()?
另外我需要在每个从节点上安装Python和R才能使转换工作?我很难找到这方面的文件.
我有以下设置的脚本。
我在用:
1)Spark数据帧以提取数据2)初始聚合后转换为熊猫数据帧3)想要转换回Spark以写入HDFS
从Spark-> Pandas进行的转换很简单,但是我在如何将Pandas数据框转换回Spark方面感到很苦恼。
你能建议吗?
from pyspark.sql import SparkSession
import pyspark.sql.functions as sqlfunc
from pyspark.sql.types import *
import argparse, sys
from pyspark.sql import *
import pyspark.sql.functions as sqlfunc
import pandas as pd
def create_session(appname):
spark_session = SparkSession\
.builder\
.appName(appname)\
.master('yarn')\
.config("hive.metastore.uris", "thrift://uds-far-mn1.dab.02.net:9083")\
.enableHiveSupport()\
.getOrCreate()
return spark_session
### START MAIN ###
if __name__ == '__main__':
spark_session = create_session('testing_files')
Run Code Online (Sandbox Code Playgroud)
我尝试了以下内容-没有错误,只有数据!确认一下,df6确实有数据&是熊猫数据框
df6 = df5.sort_values(['sdsf'], ascending=["true"])
sdf = spark_session.createDataFrame(df6)
sdf.show()
Run Code Online (Sandbox Code Playgroud) pandas ×3
pyspark ×2
pyspark-sql ×2
apache-spark ×1
dataframe ×1
hadoop ×1
python ×1
python-3.x ×1