Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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
Python PySpark-数据帧操作_Python_Apache Spark_Pyspark_Apache Spark Sql - Fatal编程技术网

Python PySpark-数据帧操作

Python PySpark-数据帧操作,python,apache-spark,pyspark,apache-spark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,我是新的火花和尝试各种事情,以了解火花。目前,我有一个CSV,我正试图解析它并将其转换为我所需的格式。我不明白如何做枢轴和获得输出或通过任何其他方式以及。我的CSV如下所示: AHeader AValue, BHeader BValue, CHeader CValue AHeader, AValue BHeader, BValue CHeader, CValue 现在,我尝试构建的CSV输出如下: AHeader AValue, BHeader BValue, CHeader CValue

我是新的火花和尝试各种事情,以了解火花。目前,我有一个CSV,我正试图解析它并将其转换为我所需的格式。我不明白如何做枢轴和获得输出或通过任何其他方式以及。我的CSV如下所示:

AHeader AValue, BHeader BValue, CHeader CValue
AHeader, AValue
BHeader, BValue
CHeader, CValue
现在,我尝试构建的CSV输出如下:

AHeader AValue, BHeader BValue, CHeader CValue
AHeader, AValue
BHeader, BValue
CHeader, CValue
这是我当前的代码:

datafile_csv = "test.csv"

def process_csv(abspath, sparkcontext):
    sqlContext = SQLContext (sparkcontext)
    df = sqlContext.read.load (os.path.join (abspath, datafile_csv),
                               format='com.databricks.spark.csv',
                               inferSchema='true')

    df.registerTempTable("currency")
    print "Dataframe:"
    display(df)
    // Don't know what to do here ????
    reshaped_df = df.groupby('_c0')
    display(reshaped_df)

if __name__ == "__main__":

    abspath = os.path.abspath(os.path.dirname(__file__))
    conf = (SparkConf ()
            . setMaster("local[20]")
            . setAppName("Currency Parser")
            . set("spark.executor.memory", "2g"))
    sc = SparkContext(conf=conf)
    process_csv (abspath, sc)

我不确定如何将此数据帧转换为预期输出。我是否需要将所有列转换为行,然后对它们执行SparkSQL?正确的解决方案是什么?

您在这里提出了两个问题。第一个问题是正确加载CSV的ETL问题,在
pandas
中可能会更好(由于您的特定数据结构),例如:


第二个问题是关于
spark
中的轴心。当
pandas.read\u csv()
将其放入您要求的形状时,如果您需要进一步重塑,请查看此处:

您需要使用自定义行分隔符来解析此内容,我认为databricks不支持此功能。请尝试将
行终止符定义为逗号,空格定义为列分隔符。@Andrew您能帮助我如何使用Pandas完成此操作吗?不确定,因为我是新手