我有一个镶木地板文件,我正在尝试将其写入增量表。我认为我的代码很简单。
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.master("local[*]") \
.appName('test') \
.config("spark.jars.packages", "io.delta:delta-core_2.12:0.7.0") \
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog") \
.config('spark.ui.port', '4050') \
.getOrCreate()
df = spark.read.format('parquet').load('fhvhv_tripdata_2021-01.parquet')
df.write.format('delta').save('deltafiles')
Run Code Online (Sandbox Code Playgroud)
当我尝试编写它时,尽管收到此错误
...
Caused by: java.lang.ClassNotFoundException: delta.DefaultSource
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at org.apache.spark.sql.execution.datasources.DataSource$.$anonfun$lookupDataSource$5(DataSource.scala:65
...
Run Code Online (Sandbox Code Playgroud)
我正在使用:Python 版本 3.8.10 当我运行 pyspark --version 我得到:
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.2.1
/_/
Using Scala version 2.12.15, OpenJDK 64-Bit Server …Run Code Online (Sandbox Code Playgroud) 在此处使用来自 Kaggle 的 Wine Review 数据。我可以使用 value_counts() 按种类返回出现次数
但是,我正在尝试找到一种快速方法,将结果限制在出现多次的品种及其数量上。
尝试df.loc[df['variety'].value_counts()>1].value_counts()
并且df['variety'].loc[df['variety'].value_counts()>1].value_counts()
都返回错误。
结果可以变成一个 DataFrame 并在那里添加约束,但有些东西告诉我有一种更优雅的方式来实现这一点。
我正在尝试读取此处找到的镶木地板格式的 02-2019 fhv 数据
https://d37ci6vzurychx.cloudfront.net/trip-data/fhv_tripdata_2019-02.parquet
但是当我尝试用 Pandas 读取数据时
df = pd.read_parquet('fhv_tripdata_2019-02.parquet')
Run Code Online (Sandbox Code Playgroud)
它抛出错误:
File "pyarrow/table.pxi", line 1156, in pyarrow.lib.table_to_blocks
File "pyarrow/error.pxi", line 99, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Casting from timestamp[us] to timestamp[ns] would result in out of bounds timestamp: 33106123800000000
Run Code Online (Sandbox Code Playgroud)
有谁知道如何打印出有问题的行或强制这些值?让它忽略这些行?
我在 Kaggle 上腌制了一个模型,并尝试下载它在本地运行。我使用诗歌和 pyenv 运行以下命令来创建项目:
pyenv local 3.6.6
poetry new model_api
cd model_test
poetry env use python
poetry add "sklearn>=0.21.3"
Run Code Online (Sandbox Code Playgroud)
但收到以下错误。
如果我只是使用 sklearn 并将其与诗歌一起安装,那么在 VS Code 中执行代码时会出现此错误。
/bin/python /home/gary/Documents/model_api/model_api/app.py
Traceback (most recent call last):
File "/home/gary/Documents/model_api/model_api/app.py", line 5, in <module>
model = pickle.load(f)
ModuleNotFoundError: No module named 'sklearn.ensemble.forest'
Run Code Online (Sandbox Code Playgroud)
这是我尝试运行的代码。
import sklearn
import pickle
f = open('./model/ForestModel','rb')
model = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)
根据我在 Kaggle 上看到的内容,我尝试使用 Python 3.6.6 和 sklearn 0.21.3:

如果我尝试使用更新版本的 Python(例如 3.8.10),我会收到相同的错误。我想我错过了一些简单/明显的东西。任何我可以检查的指示或事情将不胜感激。
我有两个使用相同收据表的CTE。收据类型“ a”表示要收取多少费用,是否可以收到一定金额。如果收据类型“ b”是在原始收据之外收到的,则有多少。这些由mnth,cusnbr和job匹配。收据上还分配了多少用于不同费用的收据。
如果收据已至少支付了99%,我将尝试总计工作时间。这些记录也基于cusnbr,jobnbr和mnth。下面的代码工作正常。
with billed as(Select cusnbr
,job
,mnth
,sum(bill_item_1) as 'Billed Item'
,sum(billed) as 'Billed'
From accounting
Where mytype in ('a','b')
Group by cusnbr
,job
,mnth)
paid as(Select cusnbr
,job
,mnth
,sum(rcpt_item_1) as 'Rcpt Item'
,sum(billed) as 'Paid'
From accounting
Where mytype in ('a','b')
Group by cusnbr
,job
,mnth)
Select b.cusnbr
,b.job
,b.mnth
,sum(g.hours) as 'Total Hours'
,b.[Billed Item]
,p.[Rcpt Item]
From billed b inner join paid p
on b.cusnbr = p.cusnbr
and b.job = p.job
and b.mnth …Run Code Online (Sandbox Code Playgroud) pandas ×2
dataframe ×1
datetime ×1
delta-lake ×1
kaggle ×1
parquet ×1
pickle ×1
pyenv ×1
pyspark ×1
python-3.x ×1
scikit-learn ×1
sql ×1
sql-server ×1