将一个简单的字符串作为文本文件存储在 azure synapse 中(到数据湖 gen2)
store a simple string as text file in azure synapse (to data lake gen2)
我正在尝试使用在突触笔记本中编写的 python 代码将一个简单的字符串作为文本文件存储在 datalakeGen2 中。但这似乎并不直接。
我试过把text转成rdd然后存储:
from pyspark import SparkConf
from pyspark import SparkContext
sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))
str = "test string"
text_path = adls_path + 'test.xml'
rdd_text = sc.parallelize(list(str)).collect()
# type(rdd_text)
rdd_text.saveAsTextFile(text_path)
但它给出错误为:
AttributeError: 'list' object has no attribute 'saveAsTextFile'
Traceback (most recent call last):
AttributeError: 'list' object has no attribute 'saveAsTextFile'
由于python rdd_text = sc.parallelize(list(str)).collect()
所以在这里,你的结果是以列表的形式存储在rdd_text
中的。因为它是一个普通的 python 语句,因为 collect()
returns 一个列表。
RDD是spark中的分布式数据结构和基本抽象,不可变
例如,remove()
或append()
是python中列表的对象,以便添加或删除元素-因此保存saveAsTextFile
是对象RDD 写入文件。
如下图所示,tuple()
没有附加属性,因为它们是不可变的,RDD 也是如此。
因此,可以使用 python rdd_text = sc.parallelize(list(str))
而不是 python rdd_text = sc.parallelize(list(str)).collect()
,因此它不会将结果存储为列表。
from pyspark import SparkConf
from pyspark import SparkContext
sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))
string = "test string"
adls_path="abfss://data@xxxxxxxx.dfs.core.windows.net/symbolexcel.xlsx"
text_path = adls_path + 'test.xlsx'
rdd_text = sc.parallelize(list(string))
rdd_text.saveAsTextFile(text_path)
我正在尝试使用在突触笔记本中编写的 python 代码将一个简单的字符串作为文本文件存储在 datalakeGen2 中。但这似乎并不直接。
我试过把text转成rdd然后存储:
from pyspark import SparkConf
from pyspark import SparkContext
sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))
str = "test string"
text_path = adls_path + 'test.xml'
rdd_text = sc.parallelize(list(str)).collect()
# type(rdd_text)
rdd_text.saveAsTextFile(text_path)
但它给出错误为:
AttributeError: 'list' object has no attribute 'saveAsTextFile'
Traceback (most recent call last):
AttributeError: 'list' object has no attribute 'saveAsTextFile'
python rdd_text = sc.parallelize(list(str)).collect()
所以在这里,你的结果是以列表的形式存储在rdd_text
中的。因为它是一个普通的 python 语句,因为 collect()
returns 一个列表。
RDD是spark中的分布式数据结构和基本抽象,不可变
例如,remove()
或append()
是python中列表的对象,以便添加或删除元素-因此保存saveAsTextFile
是对象RDD 写入文件。
如下图所示,tuple()
没有附加属性,因为它们是不可变的,RDD 也是如此。
因此,可以使用 python rdd_text = sc.parallelize(list(str))
而不是 python rdd_text = sc.parallelize(list(str)).collect()
,因此它不会将结果存储为列表。
from pyspark import SparkConf
from pyspark import SparkContext
sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))
string = "test string"
adls_path="abfss://data@xxxxxxxx.dfs.core.windows.net/symbolexcel.xlsx"
text_path = adls_path + 'test.xlsx'
rdd_text = sc.parallelize(list(string))
rdd_text.saveAsTextFile(text_path)