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
Apache spark Pyspark-如何将拼花地板文件转换为带分隔符的文本文件_Apache Spark_Pyspark_Parquet_Pyspark Sql_Tab Delimited Text - Fatal编程技术网

Apache spark Pyspark-如何将拼花地板文件转换为带分隔符的文本文件

Apache spark Pyspark-如何将拼花地板文件转换为带分隔符的文本文件,apache-spark,pyspark,parquet,pyspark-sql,tab-delimited-text,Apache Spark,Pyspark,Parquet,Pyspark Sql,Tab Delimited Text,我有一个拼花地板文件,其模式如下: |日期| ID| 我想将其转换为带有制表符分隔符的文本文件,如下所示: 20170403 15284503 在pyspark中如何执行此操作?在Spark 2.0中+ spark.read.parquet(input_path) 将拼花地板文件读入数据帧 以制表符分隔的形式写出数据帧 您可以使用DataFrame在python中读取.parquet文件,并使用list数据结构将其保存在文本文件中。示例代码如下: 此代码读取.parquet文件中spark m

我有一个拼花地板文件,其模式如下:

|日期| ID|

我想将其转换为带有制表符分隔符的文本文件,如下所示:

20170403 15284503

在pyspark中如何执行此操作?

在Spark 2.0中+

spark.read.parquet(input_path)
将拼花地板文件读入数据帧

以制表符分隔的形式写出数据帧

您可以使用
DataFrame
python中读取.parquet文件,并使用
list
数据结构将其保存在文本文件中。示例代码如下: 此代码读取.parquet文件中spark mllib WordEmbeddings类输出的word2vec(字到向量),并将其转换为tab delimiter.txt文件

我希望有帮助:)

spark.write.csv(output_path, sep='\t')
import pandas as pd
import pyarrow.parquet as pq
import csv

data = pq.read_pandas('C://...//parquetFile.parquet', columns=['word', 'vector']).to_pandas()
df = pd.DataFrame(data)

vector = df['vector'].tolist()

word = df['word']
word = word.tolist()

k = [[]]
for i in range(0, word.__len__()):
    l = []
    l.append(word[i])
    l.extend(vector[i])
    k.append(l)

#you can not save data frame directly to .txt file.
#so, write df to .csv file at first
with open('C://...//csvFile.csv', "w", encoding="utf-8") as f:
    writer = csv.writer(f)
    for row in k:
        writer.writerow(row)


outputTextFile = 'C://...//textFile.txt'

with open(outputTextFile, 'w') as f:
    for record in k:
        if (len(record) > 0):
            for element in record:
                #tab delimiter elements
                f.write("%s\t" % element)
            f.write("%s" % element)
            #add enter after each records
            f.write("\n")