当我使用Kiba ELT时,我已经按照YouTube中的教程以及所有者提供的教程进行了操作。然而,我收到了这个错误:
require_relative 'common'
api_key = IO.read('.themoviedb')
source CSVSource, filename: 'movies.csv'
limit ENV['LIMIT']
show_me!
transform MovieDBlookup,
api_key: api_key,
title_field: 'title'
show_me!
这是我的movies.etl和common.rb配置:
require 'csv'
require 'awesome_print'
class CSVSource
def initialize(filename:)
@filename = filename
end
def each
csv = CSV.open(@filename, headers: true)
csv.each do |row|
yield(row.to_hash)
end
csv.close
end
end
require 'themoviedb'
class MovieDBlookup
def initialize(api_key:, title_field:)
@title_field = title_field
Tmdb::Api.key(api_key)
end
def process(row)
movie = Tmdb::Movie.find(row[@title_field]).first
row[:vote_average] = movie.vote_average
row[:vote_count] = movie.vote_count
row
end
end
def show_me!
transform do |row|
ap row
row
end
end
def limit(x)
x = Integer(x || -1)
return if x == -1
transform do |row|
@counter ||= 0
@counter += 1
abort("stopping....")if @counter >= x
row
end
end
{{1}}
答案 0 :(得分:1)
(Kiba老板在这里) - 你得到的错误不是Kiba具体的;看起来您为themoviedb提供的API密钥无效。您是否注册了电影db here,并且是否将API密钥复制粘贴到您要加载的文件中(.themoviedb
)?
我能想到的一个问题是你在该文件中有一个行结尾字符(回车符/换行符),在这种情况下,调用api_key = IO.read('.themoviedb').strip
可能会有所帮助。
同样,这不是Kiba特有的,但希望这有帮助!