Python PySpark-数据帧操作
我是新的火花和尝试各种事情,以了解火花。目前,我有一个CSV,我正试图解析它并将其转换为我所需的格式。我不明白如何做枢轴和获得输出或通过任何其他方式以及。我的CSV如下所示: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
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完成此操作吗?不确定,因为我是新手