我无法通过使用Jupyter Notebook中的PySpark将CSV文件直接从Azure Blob存储直接加载到RDD中。
我已经阅读了几乎所有其他类似问题的答案,但是我没有找到具体说明来说明我要做什么。我知道我也可以使用Pandas将数据加载到Notebook中,但是之后我需要将Panda DF转换为RDD。
我理想的解决方案看起来像这样,但是此特定代码给我一个错误,即它无法推断CSV模式。
#Load Data
source = <Blob SAS URL>
elog = spark.read.format("csv").option("inferSchema", "true").option("url",source).load()
我也查看了以下答案:reading a csv file from azure blob storage with PySpark 但我无法定义正确的路径。
非常感谢您的帮助!
答案 0 :(得分:0)
这是我与Pandas一起使用的示例代码,用于读取带有SAS令牌的blob网址,并将Pandas的数据框转换为PySpark的数据框。
首先,通过读取blob网址来获取Pandas数据框对象。
import pandas as pd
source = '<a csv blob url with SAS token>'
df = pd.read_csv(source)
print(df)
然后,您可以将其转换为PySpark。
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("testDataFrame").getOrCreate()
spark_df = spark.createDataFrame(df)
spark_df.show()
或者,与下面的代码相同的结果。
from pyspark.sql import SQLContext
from pyspark import SparkContext
sc = SparkContext()
sqlContest = SQLContext(sc)
spark_df = sqlContest.createDataFrame(df)
spark_df.show()
希望有帮助。