Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/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
使用Scala/pysprak从Zip文件中读取内容,也可以从数据磁盘和存储在ADL上的文件中读取内容_Scala_Zip_Azure Data Lake_Azure Databricks_Pyspark Dataframes - Fatal编程技术网

使用Scala/pysprak从Zip文件中读取内容,也可以从数据磁盘和存储在ADL上的文件中读取内容

使用Scala/pysprak从Zip文件中读取内容,也可以从数据磁盘和存储在ADL上的文件中读取内容,scala,zip,azure-data-lake,azure-databricks,pyspark-dataframes,Scala,Zip,Azure Data Lake,Azure Databricks,Pyspark Dataframes,我有一个1.3GB的Zip文件,里面有一个6GB的以逗号分隔格式的txt文件。此zip文件夹位于Azure Data Lake存储上,并使用服务原则,将其装载在DBFS Dataricks文件系统上。 当使用普通python代码提取6GB文件时,我将1.98GB作为提取文件 请建议一种直接读取txt文件并将其存储为spark Dataframe的方法 我曾经尝试过使用python代码,但直接从python中读取会产生错误-错误标记化数据。C错误:第371行预期有2个字段,saw 3 使用UTF-

我有一个1.3GB的Zip文件,里面有一个6GB的以逗号分隔格式的txt文件。此zip文件夹位于Azure Data Lake存储上,并使用服务原则,将其装载在DBFS Dataricks文件系统上。 当使用普通python代码提取6GB文件时,我将1.98GB作为提取文件

请建议一种直接读取txt文件并将其存储为spark Dataframe的方法

我曾经尝试过使用python代码,但直接从python中读取会产生错误-
错误标记化数据。C错误:第371行预期有2个字段,saw 3
使用
UTF-16-LE
编码也解决了这一问题,但之后出现错误-
ConnectException:Databricks上的连接被拒绝(连接被拒绝),同时尝试显示df.head()。

提取代码-

import pandas as pd
import zipfile

zfolder = zipfile.ZipFile('/dbfszippath')
zfolder.extract(dbfsexrtactpath) 

当直接读取zip文件夹时,dataframe应该包含所有数据,并且应该显示一些数据,并且不应该挂起DataRicks集群。需要Scala或Pyspark中的选项。

拒绝的连接来自Databricks和spark的内存设置。您必须增加尺寸公差以避免此错误

from pyspark import SparkContext
from pyspark import SparkConf
from pyspark.sql import SQLContext

conf=SparkConf()
conf.set("spark.executor.memory", "4g")
conf.set("spark.driver.memory", "4g")
在这种情况下,分配的内存是4GB,因此根据需要进行更改

另一个解决办法是:

import zipfile
import io

def zip_extract(x):
    in_memory_data = io.BytesIO(x[1])
    file_obj = zipfile.ZipFile(in_memory_data, "r")
    files = [i for i in file_obj.namelist()]
    return dict(zip(files, [file_obj.open(file).read() for file in files]))


zips = sc.binaryFiles("somerandom.zip")
files_data = zips.map(zip_extract)
让我知道这是否有效,或者这种情况下的错误是什么


拒绝的连接来自Databricks和spark的内存设置。您必须增加尺寸公差以避免此错误

from pyspark import SparkContext
from pyspark import SparkConf
from pyspark.sql import SQLContext

conf=SparkConf()
conf.set("spark.executor.memory", "4g")
conf.set("spark.driver.memory", "4g")
在这种情况下,分配的内存是4GB,因此根据需要进行更改

另一个解决办法是:

import zipfile
import io

def zip_extract(x):
    in_memory_data = io.BytesIO(x[1])
    file_obj = zipfile.ZipFile(in_memory_data, "r")
    files = [i for i in file_obj.namelist()]
    return dict(zip(files, [file_obj.open(file).read() for file in files]))


zips = sc.binaryFiles("somerandom.zip")
files_data = zips.map(zip_extract)
让我知道这是否有效,或者这种情况下的错误是什么


仍然存在错误-Overflower错误:无法序列化大于4 Gib的bytes对象。我回答的最后一句是“根据需要更改”,因此请将其更改为文件内存上方的内容。好的,为什么要将其读入pandas数据帧而不是spark数据帧?你试过使用吗?我还用另一种可能的解决方案更新了我的初始帖子。仍然出现错误-OverflowerError:无法序列化大于4 Gib的bytes对象我回答的最后一句话是“根据需要更改”因此,将其更改为文件内存之上的内容。好的,为什么要将其读入pandas数据帧而不是spark数据帧?你试过使用吗?我还用另一种可能的解决方案更新了我最初的帖子。